我似乎记得在Laravel 4中有一个ajax过滤器,它只允许通过ajax请求。
Laravel 5是否有任何类似的中间件?
我有一条通过ajax从数据库中获取数据的路由,我想保护此路由,以使任何用户都无法访问它并看到json数据字符串。
最佳答案
您可以使用中间件来做到这一点。php artisan make:middleware AllowOnlyAjaxRequests
app/Http/Middleware/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
中间件。
关于laravel - Ajax中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32246359/