Laravel中间件302响应

时间:2019-11-24 12:44:55

标签: ajax laravel middleware

我对Laravel中间件的行为很奇怪,肯定是因为缺乏一些误解... ^^

如果要求是KO,则我的中间件将进行路由重定向。除我手动点击受保护的路线外,它运行良好(或不行,大声笑)。

在左侧菜单上的IE,当我单击到/ home的ajax链接时,如果不满足要求,那么我将收到302响应,而不是预期的重定向。

我不受保护的路线

Route::get('/some-redirection/url', 'Controller@getRedirectIndex')->name('getRedirectIndex');

我的受保护路线

Route::group(['middleware' => ['isOK']], function(){
    Route::get('/home', 'NavController@getHome')->name('getHome');
});

我的中间件

class User2Redirect {

public function handle($request, Closure $next) {
    $model_logic = Model::where(...)->first();

    if ($model_logic->isEmpty()) {
        return redirect()->route('getRedirectIndex');
    }

    return $next($request);
}

}

我的左侧菜单是常规加载ajax(即 $(div_id).load('/ home')

为什么我手动点击链接/ home时会得到302响应?

1 个答案:

答案 0 :(得分:0)

在受保护的$ routeMiddleware = []下在内核中注册您的中间件。