解决方案(来自这里):
在 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/