我有通过API解锁数据集的功能
function unlockData() {
var xhrArgs = {
url: "/api/unlockData",
handleAs: "json",
content: {
account_id: accountId
},
load: function(data) {
if(data) {
alert("Data unlocked");
} else {
alert("Something went wrong.");
}
},
error: function(error) {
alert("error:"+error);
}
}
var deferred = dojo.xhrGet(xhrArgs);
}
称为onUnload
dojo.addOnUnload(window, "unlockData");
重新加载时,我收到以下错误消息:
Error: Unable to load /api/unlockData?account_id=981782 status:0
我可以在卸载时发出xhrGet请求吗?顺便说一句,如果没有调用卸载,该功能可以正常工作。
答案 0 :(得分:0)
由于Xhr调用是异步,因此在“卸载”期间调用此调用将始终失败,因为浏览器不再位于此页面中。
无论如何,由于在addOnUnload
期间触发window.onbeforeunload
,您可以设置“计时器”循环来检查AJAX调用是否成功。
我强烈不推荐这种做法。在“窗口”关闭期间使用AJAX调用是完全没必要的,您应该考虑使用表单来调用脚本同步