转载:http://oildfish.blogbus.com/logs/86706682.html
这个问题只在IE下出现。诡异的是,对于出现这个问题的页面,重新刷新一下就又好了,Ajax 工作一切正常。顺便说一下,我的 jQuery 版本是 1.4.2。
解决方案(来自这里):
在 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 吧。
如鹏网.Net培训班正在报名,有网络的地方就可以参加如鹏网的学习,学完就能高薪就业,点击此处了解
三年前只要懂“三层架构”就可以说“精通分层架构”;现在则需要懂IOC(AutoFac等)、CodeFirst、lambda、DTO等才值钱;
三年前只要会SQLServer就可以说自己“精通数据库开发”;现在则需还需要掌握MySQL等开源数据库才能说是“.Net开源”时代的程序员;
三年前只要会进行用户上传内容的安全性处理即可;现在则需要熟悉云存储、CDN等才能在云计算时代游刃有余;
三年前只要掌握Lucene.Net就会说自己“熟悉站内搜索引擎开发”;现在大家都用ElasticSearch了,你还用Lucene.Net就太老土了;
三年前发邮件还是用SmtpClient;现在做大型网站发邮件必须用云邮件引擎;
三年前缓存就是Context.Cache;现在则是Redis、Memcached的天下;
如鹏网再次引领.Net社区技术潮流!点击此处了解如鹏网.Net最新课程