在我的Laravel應用程序中,我正在使用Fetch API滾動加載數據。下面是我JS在刀片文件中的代碼let route = '{{ route("load") }}' + '?q=' + encodeURI('{{ $para }}');fetch(route).then(response => { if(!response.ok) { throw new Error('Network response was not ok'); } return response.text();}).then(data => { console.log(data); }).catch((error) => { console.error('Error:', error);})在我的控制器中public function loadData( Request $request ){ if( $request->ajax() ) { return $request->query('q'); } return 'Not Ajax!';}它總是返回“不是 Ajax!”;我不確定為什么會這樣。這不是其他庫的問題,例如jQuery或Axios
3 回答

慕絲7291255
TA貢獻1859條經驗 獲得超6個贊
Request::ajax()
檢查標頭是否存在X-Requested-With
。
由于您使用的是獲取,因此必須手動將此標頭添加到選項對象中:
fetch(route, {
? headers: {
? ? 'X-Requested-With': 'XMLHttpRequest'
? },
})
例如,由于bootstrap.js 文件的設置方式,Axios 默認使用它。jQuery會為每個請求自動添加它,但跨域請求除外。

月關寶盒
TA貢獻1772條經驗 獲得超5個贊
在您的方法中使用“return”時要小心。嘗試附上 return 'Not Ajax!'; 在別的
else{ return 'Not Ajax!'; }

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
請嘗試使用request()->ajax()函數而不是$request->ajax()。我認為問題是您在頂部導入了錯誤的請求。它發生在我身上也是因為編輯器
- 3 回答
- 0 關注
- 196 瀏覽
添加回答
舉報
0/150
提交
取消