2012-04-21 124 views
0

我有一個PHP腳本,在新窗口中將文件下載到客戶端。它在Firefox中很好用,但在IE8中,窗口打開,然後立即關閉。注意這僅僅發生在一些文件(如文本/純文本類型)上,但是對於其他文件(例如:application/pdf),它可以正常工作。IE在下載開始時立即關閉窗口

我的PHP腳本添加了下面顯示的http標題(加上我的代理服務器添加的一些標題)。我無法弄清楚什麼是錯的。在php中使用頭文件後,我發現刪除Content-Type和Content-Disposition似乎有影響,但我只是亂搞,無法真正理解錯誤。

我從Firefox抓取標題,如下所示。任何人都可以看到會導致IE立即關閉的東西我試着將MIME類型設置爲應用程序/文本,但沒有區別。

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 

回答

0

它似乎是IE的反彈出技術。儘管我在IE的設置中將該網站標記爲聖人,但它仍然阻止。

解決方案是在相同的窗口(而不是_blank)開始下載,IE很高興。我可以在新窗口中打開所有其他瀏覽器。

0

我會從刪除所有不需要的響應頭開始,特別是非感性的如Content-Transfer-Encoding和Content-Description。

一個潛在的原因可能是緩存信息被破壞,或IE無法正確處理許多類型的Vary響應頭。

相關問題