我正在用发出Ajax请求
axios
到A
laravel
controller
,我想用
middleware
检查是否
request
是用做的
ajax
但问题是当我
ajax request,
这个
中间件
投掷
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();
}
}
如果我拿出
中间件
,一切都会好起来的,问题是我检查的时候
$request->ajax()
那个回报
假
,我已经在外面检查过了
中间件
直接在
controlelr
但结果是一样的,怎么了?为什么回来
假
如果是通过Ajax进行的呼叫?