解決方案(來自這裡):
在 jQuery-1.4.2.js 中找到 4954 行,
return new window.XMLHttpRequest();
修改為
代碼如下:
if(!$.browser.msie) {
return new window.XMLHttpRequest();
} else {
return new window.ActiveXObject("Microsoft.XMLHTTP");
}
Over.
原因大概是 IE7/8 對 XMLHttpRequest 的支持有一點兒問題,如果服務器端沒有正確地發送 charset HTTP Header 就不能正常使用,但是頁面加載完成之後可以通過解析 HTML Header 的方式判斷 charset,因此第二次加載網頁就正常了。
那麼就讓它們使用 ActiveXObject 吧。
參考英文原文說明:http://www.yiiframework.com/forum/index.php?/topic/9739-auto-complete-ajax-problems-in-ie-with-jquery-142/