Jquery Laravel阻止直接访问ajax路由

Jquery Laravel阻止直接访问ajax路由,jquery,ajax,laravel,Jquery,Ajax,Laravel,如何阻止/重定向对ajax路由的直接访问 我创建了中间件OnlyAjax.php <?php namespace App\Http\Middleware; use Closure; class OnlyAjax { public function handle($request, Closure $next) { if ( ! $request->ajax()) return redirect()->route('

如何阻止/重定向对ajax路由的直接访问

我创建了中间件OnlyAjax.php

<?php

namespace App\Http\Middleware;

use Closure;

class OnlyAjax
{

    public function handle($request, Closure $next)
    {
        if ( ! $request->ajax())
            return redirect()->route('admin.dashboard');
        return $next($request);
    }
}
我的路线

Route::middleware(['ajax'])->group(function () {
            Route::group(['middleware' => ['roles'], 'roles' => [1, 2, 3, 4]], function () {
                Route::post('select-plan', 'AjaxController@selectPlan')->name('ajaxSelect.plan');
            });
        });
但我犯了个错误

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException

没有消息


当我将Route::post更改为Route::get时,它正在工作。但是我想使用Route::post定义2方法,并在控制器上决定如何处理流量

Route::match(array('GET','POST'),'select-plan', 'AjaxController@selectPlan')->name('ajaxSelect.plan');
在控制器中

if (Request::isMethod('get')){
    // redirect user
}

if (Request::isMethod('post')){
    // do logic for post method
}
尝试使用$request->wantsJson$request->wantsJson不工作
if (Request::isMethod('get')){
    // redirect user
}

if (Request::isMethod('post')){
    // do logic for post method
}