W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
IncomingRequest::isAJAX()
方法使用了 X-Requested-With
請求頭來確定一個請求是否是XHR(XML Http Request)或者是一個正常的請求。 然后最新的JavaScript實現(xiàn)(例如fetch方法)中不再隨著請求發(fā)送這個頭,因此使用 IncomingRequest::isAJAX()
就不那么可靠了,因為沒有這個頭,該方法就不能識別一個請求是否是一個XHR。
為了解決這個問題,最有效的解決方式(至今)就是人為定義一個請求頭,迫使這個請求信息發(fā)送的服務(wù)器從而識別這個請求是否是一個XHR。
以下就是如何迫使在Fetch API和其他JavaScript庫中發(fā)送 X-Requested-With
請求頭。
fetch(url, {
method: "get",
headers: {
"Content-Type": "application/json",
"X-Requested-With": "XMLHttpRequest"
}
});
對于類似jQuery之類的庫來說,不需要額外發(fā)送這個頭,因為根據(jù) 官方文檔 ,對于所有 $.ajax()
請求來說,這都是一個標(biāo)準(zhǔn)頭。 但是如果你還是不想擔(dān)風(fēng)險并強制發(fā)送這個頭,就像下面這樣做吧:
$.ajax({
url: "your url",
headers: {'X-Requested-With': 'XMLHttpRequest'}
});
在VueJS中你只需要在 created
函數(shù)中增加以下代碼,只要你在這類請求時使用Axios:
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
axios.get("your url", {headers: {'Content-Type': 'application/json'}})
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: