-
"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个答案 按时间排序 按投票排序
-
至少你的请求写的不完善
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
相关推荐
由于浏览器的实现差异,尤其是Firefox和IE之间的兼容性问题,需要特别注意处理方式。以下将详细介绍如何使用JavaScript操作XML文件,并确保在Firefox和IE之间具有良好的兼容性。 1. 创建XMLHttpRequest对象 在...
当`readyState`属性值变为4(表示请求已完成)且`status`属性值为200(表示成功)时,表示请求成功。 6. **处理响应**:从`responseText`或`responseXML`属性获取服务器返回的数据,并在客户端进行处理,如更新DOM...
xmldoc = xhr.responseXML; } return xmldoc; } catch (e) { alert(e.message); return null; } } ``` 接下来,如果有一个XML字符串,我们可以将其转换为XML文档对象: ```javascript // 将XML字符串转换...
常用的做法是在URL后拼接一个随机数或时间戳参数,比如使用JavaScript中的`Math.random()`方法或`new Date().getTime()`方法生成的值。 了解了IE浏览器对Ajax请求的缓存机制和解决方法之后,我们还需要回顾一下Ajax...
当`readyState`属性值变为4(表示请求完成)且`status`属性值为200(表示成功)时,说明数据已成功获取,此时可以使用`responseText`或`responseXML`属性获取响应内容。 AJAX在许多现代Web应用中都有广泛应用,例如...
- **IE5和IE6中创建**:在Internet Explorer 5和6中,需要使用`new ActiveXObject("Microsoft.XMLHTTP")`来创建`XMLHttpRequest`对象。 - **其他浏览器中创建**:对于大多数现代浏览器(包括IE7及以上版本),可以...
3. 根据浏览器类型选择合适的XML数据获取方式:IE使用`responseXML`,其他浏览器使用DOMParser解析`responseText`。 4. 使用`getElementsByTagName`和`childNodes`等方法遍历和提取XML文档中的数据。 5. 回调函数的...
同时,可以监听`onreadystatechange`事件来判断请求状态,当`readyState`属性值为4且`status`属性值为200时,表明请求成功,此时可以调用`responseText`或`responseXML`获取服务器返回的数据。 在实际应用中,数据...
对于支持XMLHttpRequest(XHR)的现代浏览器(如IE7+、Firefox、Chrome、Safari等),可以使用`XMLHttpRequest`对象的`responseXML`属性来解析XML响应。例如: ```javascript var xhr = new XMLHttpRequest(); xhr....
5. **获取响应**:在请求完成且状态为`4`(即`readyState`属性值为4),可以读取`responseText`或`responseXML`属性获取服务器返回的数据。 在下一章中,我们将深入探讨如何使用XMLHttpRequest对象来发送HTTP请求,...
5. **获取响应数据:** 当服务器返回数据后,可以通过`responseText`或`responseXML`属性获取数据。 6. **使用JavaScript和DOM实现局部刷新:** 根据返回的数据更新页面的某个部分。 #### 二、Cookie 的弊端 **...
当readyState属性值变为4(表示请求已完成)且status属性值为200(表示请求成功)时,可以读取响应数据。 6. **处理响应**:通过responseText或responseXML属性获取服务器返回的数据。如果是JSON格式,通常会使用...
总之,XMLHttpRequest对象是实现Ajax技术的关键,它提供了一种与服务器进行无刷新交互的方式,极大地提升了Web应用的用户体验。理解并熟练掌握XMLHttpRequest对象的使用,是成为一名合格的前端开发者的必备技能。
- **接收响应**:监听`onreadystatechange`事件,当`readyState`属性值为4(表示请求完成)且`status`属性值为200(表示请求成功)时,可以通过`responseText`或`responseXML`获取服务器返回的数据。 - **处理数据**...
6. **处理响应**:如果`status`属性值为200,表示请求成功,可以使用`responseText`或`responseXML`属性获取服务器返回的数据。 **三、Ajax的实例应用** 1. **获取数据**:比如,用户在搜索框输入关键词,Ajax实时...
- `nodeValue`获取节点的值。 3. **显示数据**: - 最后,将获取到的数据展示在HTML页面中。 ```html <span id="to"></span> <span id="from"></span> <span id="message"></span> ``` #### 示例代码分析 ...
对于现代浏览器,通常直接使用new XMLHttpRequest(),而对于旧版的IE浏览器,则使用new ActiveXObject("Microsoft.XMLHttp")。 2. open方法 open方法用于初始化一个请求,它接受三个参数:HTTP方法(如GET或POST)...
在不同浏览器中,创建XMLHttpRequest对象的方法略有差异,对于非IE浏览器,直接new XMLHttpRequest()即可,而对于IE,需要使用ActiveXObject。一旦创建了对象,就可以调用其open()方法初始化请求,指定请求类型(GET...
onreadystatechange 事件在 AJAX 对象的 readyState 值发生改变时触发。我们可以使用这个事件来监听服务器的响应。 ### responseText responseText 属性返回服务器返回的文本数据。 ### responseXML responseXML...
当其值为4,表示请求已完成,再判断status属性,如果是200,表示请求成功。 4. 处理服务器响应:通过responseText或responseXML属性获取服务器返回的数据,可以是XML,HTML,JSON或其他格式。然后使用JavaScript...