首页 > 解决方案 > 如何在页面刷新时中止 ajax 请求

问题描述

我有一个表单,在提交时我正在发出一个 ajax 请求,有时需要时间来获取请求,所以我想要做的是每当form submitting我想中止该 ajax后用户刷新或点击浏览器的后退按钮称呼

我怎样才能做到这一点?

**我特别想在提交表单和提交表单时这样做,我也想中止该功能onbeforeunload**

标签: javascriptjqueryajax

解决方案


您可以直接在“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";
};

推荐阅读