0 0

"IE" responseXML无值10

IE9底下的调试结果是:
responseText结果正常
"<?xml version=\'1.0\' encoding=\'utf-8\'?><data>...</data>"

getAllResponseHeaders()结果如下
"Date: Sun, 17 Feb 2013 04:14:32 GMT\r\nServer: Microsoft-IIS/6.0\r\nContent-Length: 247\r\nContent-Type: text/xml; Charset=utf-8\r\nCache-control: private\r\n\r\n"

responseXML:
undefined


求教到底是怎么回事儿。

问题补充:自定函数:
function ajaxPOST(url,data,f){
  if(window.XMLHttpRequest){
var xmlhttp=new XMLHttpRequest();
}else{//codeforIE6,IE5
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
  xmlhttp.onreadystatechange=f;    
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}


调用函数
var url = "../ajax/init.asp";
  var f = function(){
    var xmlhttp2 = this;
    if(xmlhttp2.readyState===4 && xmlhttp2.status==200){
       var xmlDoc=xmlhttp2.responseXML;       
      }
   }


似乎是this指向的问题,FF和Chrome都正常,何解

问题补充:ajaxPOST(url,null,f);
2013年2月17日 12:33

2个答案 按时间排序 按投票排序

0 0

至少你的请求写的不完善
function ajaxPOST(url,data,f){
  if(window.XMLHttpRequest){
var xmlhttp=new XMLHttpRequest(); //局部变量
}else{//codeforIE6,IE5
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); //局部变量
}
xmlhttp.onreadystatechange=f;    
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}

这个先把它改为

var xmlhttp = null;

function ajaxPOST(url,data,f){
  if(window.XMLHttpRequest){
     xmlhttp=new XMLHttpRequest();
}else{//codeforIE6,IE5
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=f;    
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}


调用函数
var url = "../ajax/init.asp";
  var f = function(){
    if(xmlhttp.readyState===4 && xmlhttp.status==200){
       var xmlDoc=xmlhttp.responseXML;       
      }
   }

然后你再debug下,看下效果

2013年2月17日 17:02
0 0

应该是兼容问题,仔细alert打印出来,看IE在那丢失了数据

2013年2月17日 15:01

相关推荐

    Ajax实现responseXML返回信息显示

    Ajax实现responseXML返回信息显示,数据库使用的是sql server2000其中表operator只有四个字段,都是字符型的。

    asp.net ajax操作xmlHttpRequest对象返回的ResponseXML和ResponseText例子

    asp.net ajax操作xmlHttpRequest对象返回的ResponseXML和ResponseText例子

    异步调用webservice返回responseXML为空的问题解决方法

    异步调用webservice返回responseXML为空,详细很多朋友都遇到过类似的问题吧,接下来为大家提供详细的解决方案,感兴趣的朋友可以参考下哈

    jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML

    使用XMLHttpRequest对象的responseXML的方式来接受XML数据对象的DOM对象

    AJAX对服务器返回XML的处理方法

    在AJAX 中,服务器端如果返回的XML 文档,则可以通过异步对象的responseXML 属性来获取器XML 数据。而开发者可以利用DOM 的相关方法对其进行处理。 假设服务器返回的XML 文档,如下所示: &lt;?xml version="1.0" ...

    ajax的 responseXML返回接受 asp

    第一个文件 index.asp [removed] var xmlHttp = false; //ajax使用 try { xmlHttp = new ActiveXObject(“Msxml2.XMLHTTP”); } catch (e) { try { xmlHttp = new ActiveXObject(“Microsoft....

    模拟百度输入提示功能

    模拟百度输入提示功能,使用jsp+ajax实现,在tomcat7.0运行通过.没有responseXML取不到值的情况出现。提供给刚入门ajax遇到难题的同学

    ajax异步请求小结

    具体描述ajax的获取,ajax属性,参数设置,编程步骤,缓存问题,get/post乱码问题,以及应用场景的阐述 onreadystatechange ...responseXML 获得服务器返回的xml文档。 status 获得服务器返回的状态码。

    Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)

    代码如下: //导入js文件 function getResult(url, ready) { var xmlHttp; var r = function() { if (xmlHttp.readyState == 4) { if (xmlHttp... if (isIE) xmldoc = xmlHttp.responseXML; else { xmlstr = xmlHttp.res

    AJAX中文乱码问题探讨及解决

    AJAX中文问题分为两大类:一是发送路径中的参数有中文,在服务器段接收参数值是乱码二是返回来的responseText或responseXML的值中含有中文是乱码,下面为大家介绍下解决方法

    Ajax异步请求响应.java

    (method 表示请求方式, url 请求路径, asynch 是否异步,对于 asynch 的值通常不会设置, 默认是true,表示异步发送请求) send(content) :向服务器发送请求 属性: onreadystatechange :状态回调函数 ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: &lt;title&gt;XML轻松学习手册 &lt;author&gt;ajie &lt;Email&gt;ajie@aolhoo.com&lt;/email&gt; &lt;date&gt;20010115 &lt;/myfile&gt; ...

    Ajax技术课件,保密资料下载

    xhr.responseXML web3.0 ---&gt; (flex) flash--&gt; flex 1 页面 onblur 1 dom获得文本值 2 Ajax xhr ----&gt;&gt; 3 DOM input后面写上内容 2 Servlet 1 接受数据 2 调用业务 3 返回 --- Out....

    ajax或者jquery操作xml相关源文件

    var type = xhr.responseXML.getElementsByTagName("person"); /*result=type[0].childNodes[0].data; alert&#40;result&#41;;*/ try { var info = xhr.responseXML.getElementsByTagName("type"); alert&#40;...

    AJAX和DOM的运行经验

    被AJAX中DOM的操作郁闷了好几天,...在浏览器中,你可以使用document.getElementsByName(‘tagname’)[0].value来获取控件值,但是在操作 responseXML的时候你就必须使用getElementsByName(‘tagname’)[0].firstChild

    struts简单实现用户注册(最新修订)

    其二:利用ajax实现省市下拉列表的联动,结果是实现了,但是我的目的是想用responseXML,出现的问题是,只用responseText能获取返回的内容,而responseXML却获取不了 WebRoot目录下emp.sql是本程序用到的sql脚本 本...

    ajax运用实例得到的得到

    else if (window.ActiveXObject) { // IE浏览器 try { XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); }...

    jsp ajax实例

    else if (window.ActiveXObject) { // IE浏览器 try { XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); }...

Global site tag (gtag.js) - Google Analytics