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

相关推荐

    JS操作XML文件,兼容火狐、IE

    由于浏览器的实现差异,尤其是Firefox和IE之间的兼容性问题,需要特别注意处理方式。以下将详细介绍如何使用JavaScript操作XML文件,并确保在Firefox和IE之间具有良好的兼容性。 1. 创建XMLHttpRequest对象 在...

    ajax实例,兼容各个主流浏览器

    当`readyState`属性值变为4(表示请求已完成)且`status`属性值为200(表示成功)时,表示请求成功。 6. **处理响应**:从`responseText`或`responseXML`属性获取服务器返回的数据,并在客户端进行处理,如更新DOM...

    js操作XML文件的实现方法兼容IE与FireFox

    xmldoc = xhr.responseXML; } return xmldoc; } catch (e) { alert(e.message); return null; } } ``` 接下来,如果有一个XML字符串,我们可以将其转换为XML文档对象: ```javascript // 将XML字符串转换...

    浅析IE浏览器关于ajax的缓存机制

    常用的做法是在URL后拼接一个随机数或时间戳参数,比如使用JavaScript中的`Math.random()`方法或`new Date().getTime()`方法生成的值。 了解了IE浏览器对Ajax请求的缓存机制和解决方法之后,我们还需要回顾一下Ajax...

    AJAX学习文档

    当`readyState`属性值变为4(表示请求完成)且`status`属性值为200(表示成功)时,说明数据已成功获取,此时可以使用`responseText`或`responseXML`属性获取响应内容。 AJAX在许多现代Web应用中都有广泛应用,例如...

    Web开发技术之Ajax工作原理

    - **IE5和IE6中创建**:在Internet Explorer 5和6中,需要使用`new ActiveXObject("Microsoft.XMLHTTP")`来创建`XMLHttpRequest`对象。 - **其他浏览器中创建**:对于大多数现代浏览器(包括IE7及以上版本),可以...

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

    3. 根据浏览器类型选择合适的XML数据获取方式:IE使用`responseXML`,其他浏览器使用DOMParser解析`responseText`。 4. 使用`getElementsByTagName`和`childNodes`等方法遍历和提取XML文档中的数据。 5. 回调函数的...

    Ajax详解入门最新教程

    同时,可以监听`onreadystatechange`事件来判断请求状态,当`readyState`属性值为4且`status`属性值为200时,表明请求成功,此时可以调用`responseText`或`responseXML`获取服务器返回的数据。 在实际应用中,数据...

    JS解析XML适用于不用的浏览器

    对于支持XMLHttpRequest(XHR)的现代浏览器(如IE7+、Firefox、Chrome、Safari等),可以使用`XMLHttpRequest`对象的`responseXML`属性来解析XML响应。例如: ```javascript var xhr = new XMLHttpRequest(); xhr....

    WEB开发 之 AJAX - 创建 XMLHttpRequest 对象.docx

    5. **获取响应**:在请求完成且状态为`4`(即`readyState`属性值为4),可以读取`responseText`或`responseXML`属性获取服务器返回的数据。 在下一章中,我们将深入探讨如何使用XMLHttpRequest对象来发送HTTP请求,...

    前端面试题集合

    5. **获取响应数据:** 当服务器返回数据后,可以通过`responseText`或`responseXML`属性获取数据。 6. **使用JavaScript和DOM实现局部刷新:** 根据返回的数据更新页面的某个部分。 #### 二、Cookie 的弊端 **...

    Ajax完全入门

    当readyState属性值变为4(表示请求已完成)且status属性值为200(表示请求成功)时,可以读取响应数据。 6. **处理响应**:通过responseText或responseXML属性获取服务器返回的数据。如果是JSON格式,通常会使用...

    ajax 入门基础之 XMLHttpRequest对象总结

    总之,XMLHttpRequest对象是实现Ajax技术的关键,它提供了一种与服务器进行无刷新交互的方式,极大地提升了Web应用的用户体验。理解并熟练掌握XMLHttpRequest对象的使用,是成为一名合格的前端开发者的必备技能。

    AJAX开发简略

    - **接收响应**:监听`onreadystatechange`事件,当`readyState`属性值为4(表示请求完成)且`status`属性值为200(表示请求成功)时,可以通过`responseText`或`responseXML`获取服务器返回的数据。 - **处理数据**...

    有关于ajax的使用及相关实例

    6. **处理响应**:如果`status`属性值为200,表示请求成功,可以使用`responseText`或`responseXML`属性获取服务器返回的数据。 **三、Ajax的实例应用** 1. **获取数据**:比如,用户在搜索框输入关键词,Ajax实时...

    js读取xml文件并获取文件内容

    - `nodeValue`获取节点的值。 3. **显示数据**: - 最后,将获取到的数据展示在HTML页面中。 ```html &lt;span id="to"&gt;&lt;/span&gt; &lt;span id="from"&gt;&lt;/span&gt; &lt;span id="message"&gt;&lt;/span&gt; ``` #### 示例代码分析 ...

    ajax各种方法的运用借鉴.pdf

    对于现代浏览器,通常直接使用new XMLHttpRequest(),而对于旧版的IE浏览器,则使用new ActiveXObject("Microsoft.XMLHttp")。 2. open方法 open方法用于初始化一个请求,它接受三个参数:HTTP方法(如GET或POST)...

    基于Ajax用户名验证、服务条款加载、验证码生成的实现方法

    在不同浏览器中,创建XMLHttpRequest对象的方法略有差异,对于非IE浏览器,直接new XMLHttpRequest()即可,而对于IE,需要使用ActiveXObject。一旦创建了对象,就可以调用其open()方法初始化请求,指定请求类型(GET...

    AJAX(用法总结-精华版)

    onreadystatechange 事件在 AJAX 对象的 readyState 值发生改变时触发。我们可以使用这个事件来监听服务器的响应。 ### responseText responseText 属性返回服务器返回的文本数据。 ### responseXML responseXML...

    纯ajax

    当其值为4,表示请求已完成,再判断status属性,如果是200,表示请求成功。 4. 处理服务器响应:通过responseText或responseXML属性获取服务器返回的数据,可以是XML,HTML,JSON或其他格式。然后使用JavaScript...

Global site tag (gtag.js) - Google Analytics