6
我似乎記得在Laravel 4中有一個ajax過濾器,這隻會允許通過ajax的請求。Ajax中間件
是否有任何類似的中間件Laravel 5.
我有一個通過ajax從我的數據庫獲取數據的途徑,我想保護這條路所以沒有用戶可以去一下,看看數據的JSON字符串。
我似乎記得在Laravel 4中有一個ajax過濾器,這隻會允許通過ajax的請求。Ajax中間件
是否有任何類似的中間件Laravel 5.
我有一個通過ajax從我的數據庫獲取數據的途徑,我想保護這條路所以沒有用戶可以去一下,看看數據的JSON字符串。
您可以使用中間件來做到這一點。
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);
}
}
添加'ajax' => \App\Http\Middleware\AllowOnlyAjaxRequests::class,
您routeMiddleware
陣列app/Http/Kernel.php
。
然後你可以在你的路線上使用ajax
中間件。
你的意思是'Request :: ajax()'?在Laravel 5中,您可以使用相同的 – Patrick2607
是的,我只希望這些請求只能是ajax。 – panthro
你可以做ajax請求,然後在你的控制器函數中就像這樣:'if(Request :: ajax()){// echo json} else {// redirect};' – Patrick2607