responseXML无法正确返回

cjnajr 2007-11-19 02:27:37
关于这个问题,确实有很多热心人给出了解决办法,而且ajax in action 的作者在他的blog里也有说明。
但是,我的问题是我重新检查了编码,返回状态,按照帖子上的说法一点一点地修改。可是问题依然存在。我希望大家可以帮助我。
我把我代码的主要部分贴出来,希望有人可以给与帮助。谢谢。
...全文
199 3 打赏 收藏 转发到动态 举报
写回复
用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);
}

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧