如果我刷新页面,POST不会完成

时间:2012-03-07 20:15:41

标签: jquery ajax post

我有一个表单,它在提交时使用$ .ajax来调用将数据写入文本文件的bash脚本。

在Firefox中,如果我立即刷新页面或导航到其他页面,POST将中止,文本文件不会更新:

  

[15:07:12.781] POST http://server/writegit.cgi [undefined 891ms]

如果我在刷新前等待一两秒钟,POST就会完成,一切都很好:

  

[15:03:04.995] POST http://server/writegit.cgi [HTTP / 1.1 200 OK 2022ms]

但是,Chrome中不会出现此问题 - 一旦表单提交,即使我立即刷新页面,POST也会完成。

有什么方法可以让Firefox像Chrome一样?

1 个答案:

答案 0 :(得分:4)

Ajax调用是异步的 - 意味着它们会被激活,并且将来某个时候会响应。代码不等待响应。如果您在此之前离开页面,则从请求下拉出地毯。

使调用同步,或添加一些“onbeforeunload”事件处理程序,以检查您的ajax调用是否已完成,然后再允许用户离开页面。

或:只是不刷新页面!