Javascript $request->;ajax()在调用ajax时返回false

Javascript $request->;ajax()在调用ajax时返回false,javascript,ajax,laravel,axios,middleware,Javascript,Ajax,Laravel,Axios,Middleware,我正在使用axios向laravelcontroller发出ajax请求,我想使用中间件检查请求是否是使用ajax发出的,但问题是当我发出ajax请求时,中间件总是抛出false 我是这样打电话的 axios.post('/api/contact/send', { ... data : data }).then((response) => { Do somethings }).catch(err => { Do somethings }) 我的api

我正在使用
axios
laravel
controller
发出ajax请求,我想使用
中间件
检查
请求
是否是使用
ajax
发出的,但问题是当我发出
ajax请求时,
中间件总是抛出
false

我是这样打电话的

axios.post('/api/contact/send', {
    ...
    data : data
}).then((response) => {
    Do somethings
}).catch(err => {
    Do somethings
})
我的api路由

Route::namespace('Home')->middleware('IsAjaxRequest')->domain(env('HOST'))->group(function(){
    ....
    Route::post('contact/send','ContactController@postContact');
});
IsAjaxRequest
中间件

if(!$request->ajax()) {
    abort(403, 'Unauthorized action.');
}
return $next($request);
和控制器

<?php

namespace App\Http\Controllers\Home;

use Illuminate\Http\Request;
use App\Events\Home\ContactMail;
use App\Http\Controllers\Controller;

use App\Http\Requests\ContactRequest;
class ContactController extends Controller
{
    //
    public function postContact(ContactRequest $request)
    {

        $data  = $request->all();
        event(new ContactMail($request->all()));
        return response()->json();
    }
}

Axios不发送Laravel查找的
X-request-With
头,以确定请求是否为AJAX

如果您问我,您根本不应该使用或依赖此标头,但(我猜)为了方便从jQuery迁移(其中包括标头),基本的Laravel样板文件有以下代码:

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

这确保了使用Axios发出的所有请求都获得此头文件,但是如果您不使用该文件,则需要在自己的脚本中运行此行

Axios不发送Laravel用来确定请求是否为AJAX的
X-request-With

如果您问我,您根本不应该使用或依赖此标头,但(我猜)为了方便从jQuery迁移(其中包括标头),基本的Laravel样板文件有以下代码:

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

这确保了使用Axios发出的所有请求都获得此头文件,但是如果您不使用该文件,则需要在自己的脚本中运行此行

你注册中间件了吗?请用完整的中间件代码更新问题。您注册了中间件吗?请用完整的中间件代码更新问题。