2012-12-05 35 views
2

我有一個web應用程序,使用與prototype.js(Ajax.Updater)ajax。一些IE9變成AJAX請求兼容性視圖

new Ajax.Updater('someID','/some/url', 
    { 
     asynchronous:true, 
     evalScripts:true, 
     parameters:Form.serialize(Event.element(event).form), 
     requestHeaders:['X-Update', 'someID'] 
    } 
); 

一些(不是全部)IE9用戶遇到一種奇怪的現象。

  • UserAgent正常(非ajax)HTTP請求表示瀏覽器爲IE9,不在兼容性視圖中。
  • UserAgent ajax HTTP請求表示瀏覽器是IE7(IE9的兼容性視圖)。

我要強制瀏覽器不使用AJAX中的HTTP請求的兼容性視圖,但HTML已經有一個meta標籤:<meta http-equiv="X-UA-Compatible" content="IE=edge">

有誰知道原因或解決方法?

+1

相似的問題:[IE8強制插入數據到div時的兼容模式](http://stackoverflow.com/questions/3614286/ie8-forces-compatibility-mode-when-inserting-data-into -a-DIV)。也許在收到HTML片段中的一些標記/樣式迫使IE9進入兼容模式? – Victor

+0

謝謝@Victor。我將調查HTML,但可能需要很長時間... –

回答

3

這是一個可能的解決方案 - 但不是充分的研究 - 嘗試在httpd.conf.htaccess文件中設置

Header set X-UA-Compatible "IE=edge" 

- 這將在X-UA-Compatible標頭從阿帕奇添加到所有的反應,迫使IE瀏覽器不使用兼容模式

+0

謝謝!我會嘗試一下並觀察一段時間。 –

+0

自從我安裝這個版本以來,我從未見過這個問題。這可能是解決方案,但我不確定。 –

+0

Concur。同樣的問題在這裏 - 上面似乎是解決方案。 –