[英]Axios PATCH request is not ajax
我正在做一個 PATCH 請求。 請求通過並按應有的方式返回,但它不是 ajax。
我添加了一個 if 語句來檢查這一點。 怎么可能使用 Axios 而不是 ajax? 我認為 Axios 是一個環繞 ajax 的庫。
有小費嗎?
(嘗試使用 GET 或 POST,結果相同。不是 Ajax)
在 HTML
<button data-id="1">button</button>
在 Javascript 文件中
let button = document.querySelector('button');
button.addEventListener('click', event => {
let id = button.getAttribute('data-id');
patchRequest(id);
});
const patchRequest = async (id) => {
try {
const response = await axios.patch(`/action/${id}`);
return response.data.success;
} catch (err) {
return console.log(err.response.data);
}
};
Controller里面
public function __invoke(Request $request)
{
// do something and then respond
if($request->ajax()) {
return response()->json(['success' => $result], 201);
} else {
return 'not ajax';
}
}
在 web.php(路由文件)
Route::patch('action/{id}', SomeController::class);
更新
用戶@TJCrowder 幫助發表了評論。
解決我的問題的是添加這個
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
我懷疑ajax
方法正在尋找經常用於 ajax 請求的HTTP_X_REQUESTED_WITH
。 axios
可能不會設置 header,但如果您願意,可以手動設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.