0

我目前正在运行一个以移动为中心的站点,该站点支持文件上传,而我正在尝试做的是在用户将文件上传到表单时为他们节省大量空闲时间。

我的目标如下:

 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 的理解是,一旦请求发出,除非手动取消,否则会完成,但是,我遇到过到达服务器的数据不完整的情况

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

4

1 回答 1

1

正如我在 Mozilla 开发人员页面上看到的那样,XmlHttpResponses 也是有状态的。

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

你需要任何代码示例吗?

于 2013-03-15T07:47:20.030 回答