2015-08-27 17 views
6

मुझे लगता है कि लैरवेल 4 में एक अजाक्स फ़िल्टर था, यह केवल AJAX के माध्यम से अनुरोधों की अनुमति देगा।अजाक्स मिडलवेयर

वहाँ Laravel 5.

मैं एक मार्ग जो ajax के माध्यम से अपना डेटाबेस से डेटा हो जाता है, मैं तो कोई उपयोगकर्ता यह करने के लिए जाने और डेटा की एक json स्ट्रिंग देख सकते हैं इस मार्ग की रक्षा करना चाहते हैं के लिए किसी भी इसी तरह मिडलवेयर है ।

+0

क्या आपका मतलब है 'अनुरोध :: AJAX() '? लैरवेल 5 में आप उसी – Patrick2607

+0

हाँ का उपयोग कर सकते हैं, मैं बस अनुरोध केवल अजाक्स होना चाहता हूं। – panthro

+0

आप AJAX अनुरोध कर सकते हैं और फिर अपने नियंत्रक फ़ंक्शन में ऐसा कुछ कर सकते हैं: 'अगर (अनुरोध :: AJAX()) {// echo json} else {// redirect}; ' – Patrick2607

उत्तर

26

आप ऐसा करने के लिए एक मिडलवेयर का उपयोग कर सकते हैं।

php artisan make:middleware AllowOnlyAjaxRequests

एप्लिकेशन/HTTP/मिडिलवेयर/AllowOnlyAjaxRequests.php

<?php 

namespace App\Http\Middleware; 

use Closure; 

class AllowOnlyAjaxRequests 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if(!$request->ajax()) { 
      // Handle the non-ajax request 
      return response('', 405); 
     } 

     return $next($request); 
    } 
} 

app/Http/Kernel.php में अपने routeMiddleware सरणी 'ajax' => \App\Http\Middleware\AllowOnlyAjaxRequests::class, जोड़ें।

फिर आप अपने मार्गों पर ajax मिडलवेयर का उपयोग कर सकते हैं।

संबंधित मुद्दे