我有一个仅在调用是由ajax进行授权时才授权的表格,所以我尝试了
....
//MyRequest authorize function
public function authorize()
{
return $this->ajax();
}
但是当我执行ajax调用之后,在控制台中显示"This action is unauthorized."
,那么如何检测该调用是否是ajax并返回true
,否则返回false
?
答案 0 :(得分:2)
这是middlewares的工作。
<?php
namespace App\Http\Middleware;
class IsAjaxRequest
{
public function handle($request, \Closure $next)
{
// Check if the route is an ajax request only route
if (!$request->ajax()) {
abort(405, 'Unauthorized action.');
}
return $next($request);
}
}
在app / Http / Middleware / IsAjaxRequest.php
'ajax' => \App\Http\Middleware\IsAjaxRequest::class
不要忘记通过在$ routeMiddleware数组中添加以下内容,在app / Http / Kernel.php中注册中间件。
Route::get('users', 'UserController@method')->middleware('ajax');
然后,您可以将其添加到处理Ajax调用的任何路由中
{{1}}