我想我在嘗試重現小提琴手上的問題時已經完成了這一項工作。在IE中關閉「顯示友好的HTTP錯誤消息」似乎解決了這個問題。我無法在提琴手上重現它的原因是他們的404頁超過了512字節,因此無論如何它都會顯示nginx錯誤。
基本上,整個問題是,當一個頁面少於512字節(或256在某些情況下),IE似乎取代了整個頁面,阻止訪問該頁面以編程方式的結果。顯然,微軟的監督似乎仍然存在於IE10中。
很容易重現。只需將以下內容放置在服務器下的文件(例如test.html)中,然後返回512字節以下的404響應代碼,並確保您的IE設置爲顯示友好的錯誤消息(還要確保「test1.file」實際上並不實際存在)。在IE打開開發者控制檯的情況下打開頁面,你會看到「訪問被拒絕」的錯誤。如何刷新頁面會改變結果。一個CTRL + F5似乎不會出現問題,但CTRL + R或F5會。
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<script type="text/javascript">
iframe = document.createElement('iframe')
iframe.src = '/test1.file'
document.body.appendChild(iframe)
iframe.contentDocument
</script>
</body>
</html>
現在,只要我能找到我在哪裏可以提交錯誤報告對IE10,所以我們可以讓我們的生活處理這個可怕的瀏覽器只是一個更好一點。
正在返回什麼狀態碼? – Trott 2012-08-02 01:51:13
我試過403,404和500.所有這些都使iframe內容無法訪問(產生前面提到的錯誤信息)。但是,任何2xx或3xx狀態碼似乎都可以。我可以測試更多的狀態碼,但我認爲這種模式很清晰 - 狀態碼(4xx,5xx)表示的任何服務器或客戶端錯誤都會導致此錯誤。 – TomWardrop 2012-08-02 02:07:40
Windows XP上的IE8似乎沒有這個問題。 Windows 7上的IE9和IE9模式下的IE9以及Windows 8上的IE10都支持。 – TomWardrop 2012-08-02 02:34:29