Laravel阻止直接访问ajax路线

时间:2015-05-24 08:20:38

标签: jquery ajax laravel

如何阻止用户直接访问路由并检索数据。

这是一个ajax请求。

我创建了一条路线

Route::get('/getmodels/{make_id}', ['as' => 'ajax.get.models', 'uses' => 'DashboardController@getModelsFromMake']);

在我的内核中,我已将中间件指向命名路由'ajax.get.models' 在routeMiddleware数组中。

'ajax.get.models' => 'App\Http\Middleware\RedirectIfNotAjax’,

在RedirectIfNotAjax中我有这个。我不确定我是否正确接近这个。

public function handle($request, Closure $next)
{
    if (!$request->ajax()) {
        return redirect()->to('/');
    }

    return $next($request);

}

我不知道如何阻止用户直接通过浏览器访问网址,例如 app.com/getmodels/400

1 个答案:

答案 0 :(得分:0)

我在内核中更改了以下内容

'ajax' => 'App\Http\Middleware\RedirectIfNotAjax',

我在路径中设置了中间件

Route::get('/getmodels/{make_id}', ['middleware' => 'ajax', 'as' => 'ajax.get.models', 'uses' => 'DashboardController@getModelsFromMake']);