表单提交后不完整的Ajax请求

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

标签: javascript ajax xmlhttprequest

我目前正在运行支持文件上传的移动设备网站,​​我尝试做的是在将文件上传到表单时为用户节省大量空闲时间。

我的目标如下:

 xhr = new XMLHttpRequest();

 xhr.open("POST", "http://myServer/myEndpoint");
 xhr.setRequestHeader("Cache-Control", "no-cache");
 xhr.setRequestHeader('Content-Type', 'text');
 xhr.setRequestHeader('foo', "bar");
 xhr.send( myData );

 //PseudoCode
 if( xhr.DataIsSent ) myForm.submit();

正如您所看到的,我的目标是阻止用户在提交表单之前等待ajax响应。理想情况下,无论用户做什么,我都希望在后台运行。

我对ajax的理解是,一旦发出请求,除非手动取消,否则它将完成,但是,我遇到了到达服务器的数据不完整的情况

关于如何可靠地实现这一目标的任何建议将不胜感激。到目前为止,似乎一旦表单提交,部分完成的请求就会终止。

1 个答案:

答案 0 :(得分:1)

我可以在Mozilla开发者页面上阅读, XmlHttpResponses也是有状态的。

我建议你使用jQuery: 1.为你的ajax请求创建一个承诺 2.在表单提交之前使用when()。then() 3.发现错误

你需要任何代码示例吗?