如何阻止Firefox关闭流式jQuery ajax响应?

时间:2011-04-22 22:03:34

标签: php jquery ajax streaming comet

我对 - esque请求有点新意,所以如果我为自己做了太多工作并且应该使用库或其他方法,请说出来。

基本上这是我的情况:我有一个页面将<iframe>元素的src属性设置为脚本。 PHP脚本使用以下标头流式传输响应:

Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: multipart/x-mixed-replace

这在中很有名!但是,会在几秒钟后关闭连接。我该如何解决?我已经检查了两个浏览器的脚本响应,否则响应是相同的(直到Firefox关闭连接。)

令人敬畏的更新:Firefox讨厌“Content-Type:multipart / x-mixed-replace”。一旦删除它就可以在Firefox中使用。

有没有更好的方法来做这种事情?

1 个答案:

答案 0 :(得分:0)

此处的解决方案是将Content-Type: multipart/x-mixed-replace发送到Safari,但不发送给Firefox。

由于我不完全理解的原因,如果响应中存在此标头,Firefox将在几秒钟后断开与服务器的连接。 Firefox会处理流媒体响应,否则就行了。

为了实现这一点,我只是在代码中添加了对用户代理的检查:


if( preg_match("/Safari/", $_SERVER["HTTP_USER_AGENT"]) )  
    header("Content-Type: multipart/x-mixed-replace");