社区
Ajax
帖子详情
responseXML无法正确返回
cjnajr
2007-11-19 02:27:37
关于这个问题,确实有很多热心人给出了解决办法,而且ajax in action 的作者在他的blog里也有说明。
但是,我的问题是我重新检查了编码,返回状态,按照帖子上的说法一点一点地修改。可是问题依然存在。我希望大家可以帮助我。
我把我代码的主要部分贴出来,希望有人可以给与帮助。谢谢。
...全文
225
3
打赏
收藏
responseXML无法正确返回
关于这个问题,确实有很多热心人给出了解决办法,而且ajax in action 的作者在他的blog里也有说明。 但是,我的问题是我重新检查了编码,返回状态,按照帖子上的说法一点一点地修改。可是问题依然存在。我希望大家可以帮助我。 我把我代码的主要部分贴出来,希望有人可以给与帮助。谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cjnajr
2007-11-22
打赏
举报
回复
谢谢2楼。但是不是这些原因,后来我用dom来处理responseXML的时候,所有的值都是正确的。然后我把alert( "responseXML: "+xmlHttpRequest.responseXML)改成alert( "responseXML: "+xmlHttpRequest.responseXML.xml)就发现原来responseXML返回很正确。所以,尽管我的问题解决了,但是为什么会这样还是不大清楚。
NuttyCoder
2007-11-21
打赏
举报
回复
抓个包什么的看一下,是压根没有从服务器发出来,还是客户端接收之后没有解析。如果是客户端没有解析,很有可能是编码问题....= =我刚遇到一个。
cjnajr
2007-11-19
打赏
举报
回复
下面是代码:
servlet:
try {
ServletActionContext.getResponse().setContentType("text/xml;charset=UTF-8");
ServletActionContext.getResponse().setHeader("Cache-Control", "no-cache");
PrintWriter out = ServletActionContext.getResponse().getWriter();
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
out.println("<keywords>");
Iterator it = keyWordss.iterator();
while(it.hasNext()){
KeyWords k = (KeyWords)it.next();
out.println("<keyword>");
out.println("<infKeyId>" + k.getInfKeyId() + "</infKeyId>");
out.println("<infKey>" + k.getInfKey() + "</infKey>");
out.println("<staDat>" + k.getStaDat() + "</staDat>");
out.println("<codMap>" + k.getCodMap() + "</codMap>");
out.println("</keyword>");
}
out.println("</keywords>");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
jsp:
var datadiv;
var datablebody;
var keywordsArray = new Array();
var xmlHttpRequest = false;
function processResponse(){
if(xmlHttpRequest.readyState == 4){
if(xmlHttpRequest.status == 200){
display();
}else{
window.alter(xmlHttpRequest.status);
}
}else{
window.alter(xmlHttpRequest.readyState);
}
}
function display(){
alert("responseXML: "+xmlHttpRequest.responseXML);
alert("responseText: "+xmlHttpRequest.responseText);
}
function parse(targetUrl, async) {
createXmlHttpRequest();
if (typeof async != "undefined" && !async) {
xmlHttpRequest.open("get", targetUrl, false);
} else {
xmlHttpRequest.open("get", targetUrl, true);
}
xmlHttpRequest.onreadystatechange = processResponse;
xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttpRequest.send(null);
}
function sendRequest(){
var pa = document.form1.p1.value;
var targetUrl = "<%=request.getContextPath()%>/keyWords/searchKeywords.action?parameter="+pa;
parse(targetUrl, false);
}
AJAX请求JSP输出的
XML
不能识别为
response
XML
解决方案
有时为了方便服务端编写,通常是用一个jsp页面来接收并处理ajax请求,并希望将结果以
XML
形式
返回
给客户端。但通常情况下,如若不注意,即使设置contentType为"text/
xml
",
返回
给AJAX的始终只能识别为
response
Text,而不能被识别为
response
XML
。 关键在于out.print()输出,在输出前,一定要加上out.clear()。否则,输出的
XML
流会因
response
XML
返回
值
这两天学习会ajax做了两个例子
response
XML
返回
值为空,我找了半天资料也没找到,后来就改写了程序.
xml
Doc = new ActiveXObject("Microsoft.
XML
DOM");
xml
Doc.async=this.async;
xml
Doc.load
XML
(
xml
Http.
Response
XML
);然后再操作。Html页面可以当作document
my
Xml
HttpRequest.
response
XML
.getElementsByTagName()
返回
null
my
Xml
HttpRequest.
response
XML
.getElementsByTagName()
返回
null
关于
response
XML
返回
null的问题解决
关于
response
XML
返回
null的问题解决
关于ajax的
response
XML
与
response
Text
response
XML
与
response
Text的区别?
response
XML
返回
的是
xml
dom对象,通过该对象可以访问
xml
文件的节点、属性节点、值节点。 而
response
Text
返回
的是文本字符串,可以直接打印输出。
response
XML
在各大浏览器中的使用: IE和Opera支持
response
XM
Ajax
52,780
社区成员
25,335
社区内容
发帖
与我相关
我的任务
Ajax
Web 开发 Ajax
复制链接
扫一扫
分享
社区描述
Web 开发 Ajax
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章