Ajax关于IE7.0的问题

Magic_YJL 2008-04-22 02:14:56
我们写的Ajax代码在IE7.0之前的版本运行是没有问题的,但是在IE7.0上运行就有问题了,原因是微软在其IE 7中把XMLHttpRequest实现为一个窗口对象属性,而以前的版本作为一个ActiveX对象形式引入了XMLHttpRequest对象.

归根结底就是在获得XMLHttpRequest对象的方式上变化了
解决问题最简单的办法就是:
.点击“工具”->“Internet选项”->“高级”,在“安全”节点下找到“启用本机XMLHTTP支持”,该选项默认是钩选,禁用它后可以解决问题。

也可以通过JavaScript代码解决代码如下:

if(window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.ActiveXObject){
req = new ActiveXObject("Msxml2.XMLHTTP.4.0");
}
else if(window.ActiveXObject){
req = new ActiveXObject("Msxml2.XMLHTTP");
}
else if(window.XMLHttpRequest){
req = new XMLHttpRequest();
}


那么我想问的是:上述JavaScript是怎么执行的?为什么前面三个语句里都是“window.ActiveXObject”?

if(window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.ActiveXObject){
req = new ActiveXObject("Msxml2.XMLHTTP.4.0");
}
else if(window.ActiveXObject){
req = new ActiveXObject("Msxml2.XMLHTTP");
}
else if(window.XMLHttpRequest){
req = new XMLHttpRequest();
}
按常理应该要么执行第一个,要么全不执行的呀~
我是一个JavaScript盲,请高手赐教~
...全文
273 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuyiazl 2008-04-24
  • 打赏
  • 举报
回复
$.ajax({
type:"POST",
url :"server/register.aspx" ,
data: data,
success:function(msg){
//msg 返回值 或者返回数据集
}
})

jquery
chenguang79 2008-04-22
  • 打赏
  • 举报
回复
学习了。感谢楼主的分享
Magic_YJL 2008-04-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dcbr4 的回复:]
用prototype好了 有现成的东西为什么不用呢
[/Quote]

?对于prototype我也晓得一二,就是不清楚你的意思?。你认为应该怎么做?
大狼尾巴 2008-04-22
  • 打赏
  • 举报
回复
不知道楼主是在哪里得到的这段代码,我的 Ajax 实战这本书里面判断的时候也没有这样写,是用的 try 语句。。。
icyleaf1026 2008-04-22
  • 打赏
  • 举报
回复
jquery也不错···比prototypejs的功能多的多··。
dcbr4 2008-04-22
  • 打赏
  • 举报
回复
用prototype好了 有现成的东西为什么不用呢
Magic_YJL 2008-04-22
  • 打赏
  • 举报
回复
汗,自己给自己顶一下~
竟然没人~

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧