responseXML为空?
这个问题困住我一个月多,今天决定花心思理一下。问了好多同事与朋友。也查了很多东西。都无解!
网络上操作是把response.responseText 进行转
try
{
var parser = new DOMParser();
this.xmlDoc = parser.parseFromString(xmlString,"text/xml");
}
catch(e){
this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
this.xmlDoc.async=this.async;
this.xmlDoc.loadXML(xmlString);
}
但我总觉的这样改总是很蹊跷,因为我服务器输出都没有问题 是正常的xml,在谷歌下就是解析不了。
编码也没有问题,因为输出来的
response.responseText 有数据
就是response.responseXML为null
就这样困住我一个月,查不出一个所以然。
今天认真看了xml 并把返回的xml数据 拿 出来 自己创建 一个xml 文件,然后把 返回 数据 贴进去,最后让ie 去解析
然后看到ie 可以正常解析。
但谷歌不行,认真看一下,才发现,如果浏览器找不到xmlns协议解析会去网络上找并解析,这才发现自己的数据包没有按这个协议走导致 返回来的数据 老是得不到 response.responseXML对象。
分享到:
相关推荐
在异步调用webservice的过程中,返回的responseXML为空是一个相对常见的问题。这通常与浏览器兼容性、XML处理方法或者SOAP消息格式有关。下面,我们将详细介绍与这一问题相关的知识点。 ### JavaScript对XML的加载...
- 当readyState为0、1或2时,responseText为空字符串。 - 当readyState为3时,responseText包含未完成的响应信息。 - 当readyState为4时,responseText包含完整的响应信息。 - **responseXML**:当readyState为4...
3. **执行替换操作**:调用`Replace`方法,传入需要处理的字符串`ResponseXml`以及替换为空字符串(即`""`),从而达到去除字符串中所有空格的目的。 4. **返回处理结果**:将处理后的字符串返回给调用者。 #### ...
- 在`readyState`为0、1或2时,`responseText`为空字符串。 - 在`readyState`为3时,`responseText`包含部分响应文本。 - 在`readyState`为4时,`responseText`包含完整的响应文本。 ##### 3. **responseXML属性...
在`readyState`为0、1或2时,该属性为空字符串;在`readyState`为3时,包含部分响应文本;当`readyState`达到4时,表示响应已完全接收,`responseText`包含完整响应内容。 **4. responseXML属性** 对于XML格式的...
- `send()`:发送请求,如果是GET请求,可以为空;如果是POST请求,需要传入数据。 - `abort()`:中断当前的HTTP请求。 - `setRequestHeader()`:设置HTTP请求头,例如设置Content-Type为"application/x-...
- 调用 `send()` 方法,如果为 GET 请求,可直接发送空参数;如果是 POST 请求,则需要传递数据。 - 注册 `onreadystatechange` 事件处理函数,检查 `readyState` 和 `status` 状态,确保请求已完成且成功。 4. *...
var XMLHttpReq = false;... window.alert("用户名不能为空。"); document.myform.uname.focus(); return false; } else { sendRequest('login2?uname='+ uname + '&psw=' + psw); } } </script>
如果是GET请求,data应为空。 3. `abort()`:取消当前的HTTP请求。 XMLHTTP对象还有其他辅助方法,如`setRequestHeader(header, value)`用于设置HTTP请求头,以及`setTimeouts(timeout, timeout, timeout, timeout)...
很好的ajax实例 ... window.alert("用户名不能为空。"); document.myform.uname.focus(); return false; } else { sendRequest('login2?uname='+ uname + '&psw=' + psw); } } </script>
对于GET请求,参数为空;对于POST请求,参数通常是序列化后的数据。 4. 监听状态变化:通过`onreadystatechange`事件监听请求状态。xhr.readyState有五个状态,0-4分别代表请求的不同阶段。 5. 处理响应:当状态变为...
例如,检查`xmlDoc`是否不为空,确认XML文档是否已成功加载并准备就绪。 案例1展示了一个简单的HTML页面内嵌JS脚本加载XML文档的例子。在这个例子中,XML文件包含书籍数据,而HTML页面中的JavaScript代码创建了DOM...
6. **处理响应**:当`readyState`为4且`status`为200时,表示请求成功,此时可以通过`responseText`或`responseXML`获取服务器响应。 ### 三、Ajax与SQL结合 在实际应用中,Ajax常用于与数据库进行交互。这里以...
- responseText或responseXML属性:分别用于获取响应的数据,前者为文本形式,后者为XML形式(如果服务器返回XML数据)。 - onreadystatechange事件:当readyState属性变化时触发,通常用来监控请求的进度。 - ...
5. **处理响应**:在`onreadystatechange`事件处理程序中,当`readyState`为4(表示请求完成)且`status`为200(表示请求成功)时,可以通过`responseText`或`responseXML`获取服务器的响应数据。 6. **更新页面**...
当readyState属性值变为4(表示请求已完成),且status属性值为200(表示成功)时,我们可以通过responseText或responseXML获取服务器返回的数据。 2. **GET请求示例** - **GET请求**是最常见的Ajax请求方式,用于...
对于GET请求,参数为空;对于POST请求,可以传递数据。 ### 三、处理响应 1. `onreadystatechange`事件:当服务器响应状态改变时触发,通过`readyState`属性检查请求是否完成。 2. `status`属性:返回HTTP状态码...
如果是GET请求,参数为空;POST请求时,参数为要发送的数据。 4. 监听状态变化:通过`onreadystatechange`事件监听请求状态。当状态变为4(表示请求已完成)且状态码为200(表示成功)时,表示请求成功。 5. 处理...