在Firefox 15中使用ajaxing onbeforeunload

时间:2012-10-29 21:38:19

标签: javascript jquery ajax windows firefox

当我尝试执行ajax" fire and forget"时,我遇到了firefox 15.0.1的问题。呼叫。基本上当用户关闭页面或重定向时,我想执行ajax调用。在Chrome和IE中,当我在Charles查看我的请求时,这似乎工作正常。但是,在FireFox中,我没有看到我的ajax调用。

jQuery(window).on('beforeunload',function(){
     jQuery.ajax({url:'some page', type: 'GET', dataType: 'script'});
});

我知道当我包含console.log或警报时,该事件有效。在卸载之前,似乎没有足够的时间允许执行此ajax调用。有人对此有任何想法或有解决方法吗?

1 个答案:

答案 0 :(得分:0)

您可以创建另一个执行ajax调用的html页面,该页面将从onbeforeunload事件中调用。

新页面将执行操作并在完成后立即关闭。

另一种方法是使用同步ajax调用,如下所示:

jQuery.ajax({
     url:    'http://abcexample.com/getInfo',
     success: function(result) {
                  if(result.isOk == false)
                      alert(result.message);
              },
     async:   false
});

但同步调用将等待调用完成后再继续。如果你想执行并忘记ajax调用的作用,那么第一种方法就可以了。