我在WebKit(在Android上)看到一种奇怪的行为,我的服务器进程正在向它发送一个需要立即处理的响应(而不是等待readyState 4)。在Firefox和Safari中,这可以按预期工作,但是在webkit上,它不仅不响应readyState,而且它似乎触发了对服务器的重复请求!
这似乎只发生在服务器需要一点时间来响应请求时。我仍在四处寻找具体情况,但是我很好奇这是一个已知的错误,以及什么,如果有的话,是一种解决方法。
[编辑]这只是更奇怪和更奇怪。只要服务器在大约10秒内响应,一切都很好。但是如果它需要更长的时间,则重新提交请求。但是,浏览器似乎不知道此重新提交,或者如果是,它不会以任何方式报告它。我在请求中附加了一个唯一的ID,当它在服务器上第二次到达时,id是相同的。但它肯定会产生对服务器的额外调用。关于如何进一步调试,我有点不知所措。
答案 0 :(得分:0)
没有人管道输入,所以。我通过从服务器端终止连接来解决问题。
所以,我的解决方案:
a)客户端调用服务器(这是一个perl.cgi)
b)服务器代码:
打印(broswer的一些JSON); 关闭(STDOUT); #this将readyState 4发送到浏览器并关闭连接。 &安培; methodThatTakesAWhile();
这并不能解释为什么浏览器行为不端,但它确实解决了这个特定的错误。