如何在页面刷新时中止Ajax请求

时间:2019-03-15 06:52:00

标签: javascript jquery ajax

我有一个提交的表单,我正在提出一个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` }; }); **

2 个答案:

答案 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()