我有一个提交的表单,我正在提出一个ajax请求,有时会花一些时间来获取该请求,所以我想做的是在{{1之后,当用户刷新或单击浏览器的后退按钮时}}我想中止该ajax调用
我在做什么
form submitting
每当用户单击请假时,我都想中止我的ajax请求
我该怎么做?
**我特别想在每次提交表单时提交,一旦提交表单,我也想中止该功能$("#formId").submit(function(event) {
event.preventDefault();
var xhr = $.ajax({
url : "Drilldown",
method : "GET",
success : function(data) {
// here doing ,my stuff
},
complete : function() {
$('.loader').hide();
$('.overlay').hide();
}
});
window.onbeforeunload = function() {
return "some message"; // here when user clicks on leave then want to abort like `xhr.abort`
};
});
**
答案 0 :(得分:2)
您可以直接在“ onbeforeunload”事件处理程序方法中使用xhr.abort():
// Define xhr variable outside so all functions can have access to it
var xhr = null;
$("#formId").submit(function(event) {
event.preventDefault();
xhr = $.ajax({
url: "Drilldown",
method: "GET",
success: function(data) {
// here doing ,my stuff
},
complete: function() {
$('.loader').hide();
$('.overlay').hide();
}
});
});
window.onbeforeunload = onUnload;
function onUnload() {
if(xhr) xhr.abort();
return "some message";
};
答案 1 :(得分:0)
在下面的方法中调用以终止ajax调用
xhr.abort()