How to Laravel block/redirect direct access to ajax route?
I created Middleware 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);
}
}
Add in Karnel.php
'ajax' => \App\Http\Middleware\OnlyAjax::class,
My Route
Route::middleware(['ajax'])->group(function () {
Route::group(['middleware' => ['roles'], 'roles' => [1, 2, 3, 4]], function () {
Route::post('select-plan', 'AjaxController@selectPlan')->name('ajaxSelect.plan');
});
});
But I got error
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message
When I change Route::post to Route::get it's working. But I want to use Route::post
$request->wantsJson()$request->wantsJson()Not working