使用AJAX要注意引号,否则IE6不会轻易答应你的请求
来源:岁月联盟
时间:2012-10-09
因为要异步来做保存业务功能,所以要用到ajax,而我们知道ajax的核心就是
XMLHttpRequest,而要用到这个核心的对象,我们就要创建这个对象,这个对象的创建是区分浏览器的,主要还是在IE浏览器中有所不同。而这块出现的问题也是因为是IE浏览器。
创建xmlHttpRequest对象的代码应该是这样的:
[javascript]
function createXMLHttpRequest(){
//表示当前浏览器不是ie,如ns、firefox
if(window.XMLHttpRequest){
xmlHttp=newXMLHttpRequest();
}elseif(window.ActiveXObject){
try{
xmlHttp=newActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert(“您的浏览器不支持ajax!”);
}
}
}
}
这里如果不是ie浏览器就可以直接new出来,但是如果是ie浏览器的话,就要分情况了,如果是6.0+的话就是用第二种方法也就是msxml2的,如果是5.5+的话就用microsoft的。
但是我们目前做开发的时候基本上都是ie6.0以上的,所以我们经常写的话就把中间的那个省去直接用Microsoft的创建。
然而我们遇到的问题就是在创建的时候xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");写成了xmlHttp=new ActiveXObject(Microsoft.XMLHTTP);这样的在其他浏览器上都执行成功,但是到了IE上就出现问题了,而且IE7-9都没有问题,仅仅是IE6出现了问题,因为去客户那里部署,客户用的是IE6,由于疏忽引号没有了,始终执行不成功。通过检测发现是因为少了引号。一时的疏忽会浪费好长时间的调试。
所以写这篇博客分享给大家,以后这样的问题希望大家注意。
上一篇:jquery实现简单瀑布流代码
下一篇:jquery面向对象编程