0

我有一个 PHP 脚本,可以在新窗口中将文件下载到客户端。它在 Firefox 中运行良好,但在 IE8 中,窗口打开然后立即关闭。请注意,这只发生在某些文件(如 text/plain 类型)中,但对于其他文件(例如:application/pdf),它可以正常工作。

我的 PHP 脚本添加了如下所示的 http 标头(显示了我的代理服务器添加的一些标头)。我不知道出了什么问题。在 php 中使用 headers 后,我发现删除 Content-Type 和 Content-Disposition 似乎会产生影响,但我只是在乱搞,无法真正理解出了什么问题。

我从 Firefox 中获取了标题,如下所示。任何人都可以看到会导致 IE 立即关闭的东西我尝试将 mime 类型设置为 application/text 但没有区别。

HTTP/1.0 200 OK
Date: Sat, 21 Apr 2012 21:02:13 GMT
Server: Apache
Pragma: public
Expires: 0
Cache-Control: public
Content-Description: File Transfer
Content-Disposition: attachment; filename="Sample_Text_File.txt"
Content-Transfer-Encoding: binary
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 47
Content-Type: text/plain
X-Cache: MISS from firewall.mydomain.ca
X-Cache-Lookup: MISS from firewall.mydomain.ca:3128
Via: 1.0 firewall.mydomain.ca (squid/3.0.STABLE7)
Proxy-Connection: close
4

2 回答 2

0

这似乎是 IE 的防弹窗技术。即使我在 IE 的设置中将该站点标记为 sage,它仍然会阻止..

解决方案是在同一个窗口(不是_blank)中开始下载,IE 很高兴。您可以在新窗口中打开的所有其他浏览器。

于 2012-05-04T12:59:42.230 回答
0

我将首先删除所有不需要的响应标头,特别是无意义的标头,例如 Content-Transfer-Encoding 和 Content-Description。

一个潜在的原因可能是缓存信息损坏,或者 IE 无法正确处理多种类型的 Vary 响应标头。

于 2012-04-22T09:22:31.533 回答