查到原因是IE從5.0以來的Flash Bug,看來是為了安全性才這麼做的:

微軟官方的說明中表示發現有三個狀況會造成此問題,我遇到的應該是第二種狀況:

  • The user selects the Do not save encrypted pages to disk check box on the Advanced tab of the Internet Options dialog box.
  • The server sends a Pragma:no-cache or Cache-control:no-cache header.
  • If you are using Microsoft Internet Information Server (IIS), the Content-Expiration option is set to Expire Immediately, which sends no-cache headers as well as the Expires:0 http header.

不過看來還有其他狀況也會發生 ( http://faindu.wordpress.com/2008/04/18/ie7-ssl-xml-flex-error-2032-stream-error/ )

而且就算設了 Cache-control:no-cache時,HTTP也不一定100%會清Cache (they don’t seem to prevent caching 100%)
所以除了移除這類的HTTPS Headers外,XML的參數中建議加上一個時間標記或亂數,讓Browser認為這是不同的資料所以不會使用Cache,範例如下:
/data.asp?year2=2010&month2=09&currTime=11_26_50_274

發佈留言