仅在ajax调用时授权表单请求

时间:2018-07-09 00:05:55

标签: ajax laravel-5 laravel-request

我有一个仅在调用是由ajax进行授权时才授权的表格,所以我尝试了

....
//MyRequest authorize function
public function authorize()
{
    return $this->ajax();
}

但是当我执行ajax调用之后,在控制台中显示"This action is unauthorized.",那么如何检测该调用是否是ajax并返回true,否则返回false

1 个答案:

答案 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}}
相关问题