2010-09-24 78 views
1

所以,我最近發現了這個小寶石。通過使用HTTP響應頭的HTTPS強制禁用Internet Explorer?

http://support.microsoft.com/kb/323308

從本質上講,IE沒有不正常Cache-Control: no-cache通過HTTPS,它打破了下載。但是,我需要禁用緩存來處理跨越我的應用程序的多個響應,這些響應碰到了相同的IO寫路徑,我可以輕鬆控制這些路徑。

有沒有辦法解決這個問題,這樣我就可以通過HTTPS在IE上強制禁止緩存而只使用響應頭?期望我的用戶執行註冊表更改來修復IE的損壞行爲是不現實的。

回答

1

有沒有好的解決辦法。不過,您可以嘗試將時間戳添加到您的請求中。

+0

我使用這種方法在ie中,因爲它緩存請求! – jimplode 2010-09-30 16:52:13

0

我只是這樣做,以清除Web容器設置緩存頭,它一直很好

response.reset(); //workaround IE restriction against streaming to cache from SSL 
response.setContentType("myMIMEType"); 
response.setHeader("Content-Disposition", "attachment; filename=\"" + whateverGoesHere + "\""); 

然後將文件發送到輸出流。顯然,如果你想讓它在瀏覽器窗口內呈現而不是文件保存對話框,你不會放置attachment;處置類型。

+0

這應該以某種方式防止緩存,或允許緩存控制不會導致絕對破損?我現在都在嘗試。 – 2010-09-24 17:35:16

-1

嘗試使用:

Pragma: no-cache 

HTTP Spec

+0

這表現出同樣的破損。 – 2010-09-24 19:33:41

0

只是IE8(但不是IE9)遇到同樣的問題,找到了修正爲:

Pragma: private 
Cache-Control: private, must-revalidate 

萬一有人還在尋找。