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