当我尝试执行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调用。有人对此有任何想法或有解决方法吗?
答案 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调用的作用,那么第一种方法就可以了。