我必須在 beforeunload 事件中發出同步 ajax 請求,但它拋出一個錯誤,因為在頁面卸載事件期間,chrome 瀏覽器不支持同步 ajax 請求。
在頁面卸載事件周期期間發出同步 ajax 請求的替代方法是什么。
window.on('beforeunload',function(){
$.ajax({
url:'@Url.Action("ActionName","ControllerName")',
async:false,
data:formData,
success:function(){
//Success logic
},
error:function(){
//Failure logic
}
});
});
DOMException:無法在“XMLHttpRequest”上執行“發送”:加載失敗:
注意:navigator.sendBeacon() 默認是異步的,但我需要在頁面關閉時有一個同步請求。
有什么建議?
uj5u.com熱心網友回復:
SynchronousXMLHttpRequest已被棄用,您可以參考此檔案。Blink 已從頁面關閉事件(beforeunload和unload)中洗掉了對同步 XHR 的支持,您在 Chrome 瀏覽器中根本無法再這樣做了。
現代方法是使用sendBeacon和fetch keepalive作為解決方法。有關更多資訊,您可以參考此推文和此執行緒。如果您不使用這些解決方法,我認為沒有其他方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/311580.html
