因为页面要求,需要在页面跳转的时候做一些数据的保存工作,试了很多次,发现Jquery的unload事件中调用.ajax方法,在FireFox中可以顺利执行,但是在Chromium下却返回了textStatus为error的消息。试验过很多方法,例如在页面离开时弹出确认框,这样虽然返回了error消息,但是数据库显示操作执行完毕。将确认框除去后,数据库依然没有响应。
查阅多方资料后,发现是以为.ajax的异步响应问题,把ajax请求改为同步的,问题解决。 代码如下:
1 $(window).unload(function(){ 2 $.ajax({ 3 url:testUrl, 4 async:false, 5 type:'POST', 6 dataType:'json', 7 data:{}, 8 success:function(json){}, 9 error:function(XMLHttpRequest, textStatus, errorThrown){} 10 }); 11 });