有没有人注意到WebKit中有一个奇怪的AJAX错误,它忽略了readyState 3?

时间:2010-09-19 22:06:41

标签: ajax webkit

我在WebKit(在Android上)看到一种奇怪的行为,我的服务器进程正在向它发送一个需要立即处理的响应(而不是等待readyState 4)。在Firefox和Safari中,这可以按预期工作,但是在webkit上,它不仅不响应readyState,而且它似乎触发了对服务器的重复请求!

这似乎只发生在服务器需要一点时间来响应请求时。我仍在四处寻找具体情况,但是我很好奇这是一个已知的错误,以及什么,如果有的话,是一种解决方法。

[编辑]这只是更奇怪和更奇怪。只要服务器在大约10秒内响应,一切都很好。但是如果它需要更长的时间,则重新提交请求。但是,浏览器似乎不知道此重新提交,或者如果是,它不会以任何方式报告它。我在请求中附加了一个唯一的ID,当它在服务器上第二次到达时,id是相同的。但它肯定会产生对服务器的额外调用。关于如何进一步调试,我有点不知所措。

1 个答案:

答案 0 :(得分:0)

没有人管道输入,所以。我通过从服务器端终止连接来解决问题。

所以,我的解决方案:

a)客户端调用服务器(这是一个perl.cgi)

b)服务器代码:

打印(broswer的一些JSON); 关闭(STDOUT); #this将readyState 4发送到浏览器并关闭连接。 &安培; methodThatTakesAWhile();

这并不能解释为什么浏览器行为不端,但它确实解决了这个特定的错误。