当前位置:编程学习 > JAVA >>

使用AJAX要注意引号,否则IE6不会轻易答应你的请求

      在现在正在做的流程编排框架中有些业务需要用到ajax技术来做异步通信,这块的业务主要是在普元的活动属性页上添加业务功能的扩展页,这块的操作普元的API中讲解的非常详细,在这就不多做介绍,这里主要是说说在这块操作中遇到的问题。
 
       因为要异步来做保存业务功能,所以要用到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,由于疏忽引号没有了,始终执行不成功。通过检测发现是因为少了引号。一时的疏忽会浪费好长时间的调试。
 
       所以写这篇博客分享给大家,以后这样的问题希望大家注意。
补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,