在页面卸载时可靠地完成Ajax请求

时间:2014-07-14 12:51:08

标签: javascript jquery ajax

我有一个html / javascript应用程序。当用户刷新页面或关闭页面时,我需要发出ajax请求,然后关闭应用程序。

我正在使用页面卸载事件来实现此目的。

我在打电话 window.onbeforeunload = beforeFunction;

beforeFunction将发出ajax请求。但当我检查提琴手时,我没有看到ajax请求。但是,如果我调试应用程序并使用f10执行每一行,那么我在fiddler中看到ajax请求。

这就是我的ajax请求是如何形成的:

    $.ajax({
            url: url,
            type: "GET",
            contentType: "application/json",
            async: false,
            crossDomain: true,
            dataType: 'jsonp',
            success: function(json){
              alert("success: " + json);
            },
            error: function(xhr, statusText, err) {
              alert("Error:" + xhr.status);
            }
    });

1 个答案:

答案 0 :(得分:0)

$(window).on('beforeunload' function() {
    $.ajax({
        url: url,
        type: "GET",
        contentType: "application/json",
        async: false,
        crossDomain: true,
        dataType: 'jsonp',
        success: function(json){
          alert("success: " + json);
        },
        error: function(xhr, statusText, err) {
          alert("Error:" + xhr.status);
        }
    });
});

试试这个......