问一个ajax的问题 顶者有分

时间:2022-12-18 12:58:39
ajax中 取得返回的xml:var results=http_request.responseXML.documentElement;
alert(results);
但是得到的results却为空,xml中有内容 通过ie打开xml也没报错.
谢谢大家

36 个解决方案

#1


你先看看 http_request.responseXML 这里是什么值!
如果有值,你试试 results = http_request.responseXML.lastChild;

#2


不行啊,还是为'null';http_request.responseXML 好象没有读取到xml,但是xml中确实有值,郁闷

#3


我也遇見過這問題,老是報空!
頂下@!!1

#4


别啊,遇到过您是怎么解决的.
英雄们帮帮我吧

#5


我顶 再顶

#6


情况说的不够明白!

#7


你把哪个xml写到你的response里面去了吗????

#8


var results=http_request.responseXML;
         alert(results);----->object
         var root=results.documentElement;
         alert(root);------>null
怎么把xml写到你的response里啊?我 alert(http_request.responseText);可以得到xml.
郁闷 极度郁闷

#9


顶,来个英雄 帮帮我

#10


.documentElement是what?

#11


你 想要得到什么 ?  解析http_request.responseXML  用getElementsByTagName()

#12


您的意思是 var results=http_request.responseXML.getElementsByTagName('root');
??

#13


up

#14


ding

#15


看来csdn真是堕落了,都没人回答.哎呀 好凄凉

#16


帮你顶下

#17


帮你顶

#18


bang ding

#19


建议你看一下服务器端程序,有可能流没有close,流没有close的情况就和你所说的一样.

#20


读取XML应该是先读取它的根,在读它的孩子吧。
getElementsByTagName()是读取对象,要读值的话可以用下面的试试:
var results=http_request.responseXML.getElementsByTagName('root').item(0).text;
说的有什么错误还请包涵。

#21


还是不行  比较郁闷.

#22


幇顶了

#23


你把整格代码都贴出来吧。是想干什么的,你是在JSP页面调用JS处理的吗?

#24


这是一段判断案件状态的代码你看看。
function processRequest(){ 
if(http_request.readyState==4){ //判断对象状态 
if(http_request.status==200){//信息已经成功返回,开始处理信息 
var xml = http_request.responseXML;
var validaj = xml.getElementsByTagName("validaj").item(0).text;
var validstat=xml.getElementsByTagName("validstat").item(0).text;
var validauth=xml.getElementsByTagName("validauth").item(0).text;
var nsrnbm=xml.getElementsByTagName("nsrnbm").item(0).text;
var name_nsr=xml.getElementsByTagName("name_nsr").item(0).text;
var addr=xml.getElementsByTagName("addr").item(0).text;
var tel=xml.getElementsByTagName("tel").item(0).text;
var lxr=xml.getElementsByTagName("lxr").item(0).text;
var date_ssq=xml.getElementsByTagName("date_ssq").item(0).text;
var date_ssz=xml.getElementsByTagName("date_ssz").item(0).text;
var zclxmc=xml.getElementsByTagName("zclxmc").item(0).text;
try{
if(validaj=="not"){
alert("您输入的案件编号不存在!");
document.getElementById("id_aj").value="";
document.getElementById("name_nsr").value="";
document.getElementById("nsrnbm").value="";
ajzt=false;
}else if(validstat=="not"){
alert("您输入的案件无法执行此功能!");
document.getElementById("id_aj").value="";
document.getElementById("name_nsr").value="";
document.getElementById("nsrnbm").value="";
ajzt=false;
}else if(validauth=="not"){
alert("您无权对这个案件进行此操作!");
document.getElementById("id_aj").value="";
document.getElementById("name_nsr").value="";
document.getElementById("nsrnbm").value="";
ajzt=false;
}else{
/*
这里的字段是按照顺序取得的,如果页面中没有相应的ID对象,则会跳出,下面的代码不会执行
*/
document.getElementById("name_nsr").value=name_nsr;
document.getElementById("nsrnbm").value=nsrnbm;
ajzt=true;
try{
document.getElementById("addr_sd").value=addr;
document.getElementById("lxr").value=lxr;
document.getElementById("tel").value=tel;
}catch(exception){}
try{
document.getElementById("date_ssq").value=date_ssq;
document.getElementById("date_ssz").value=date_ssz;
document.getElementById("zclxmc").value=zclxmc;
}catch(exception){}
}
}catch(exception){

}finally{
if(toValidHz){
validHz();
}
}

if(document.getElementById("id_aj").value==""){
document.getElementById("id_aj").focus();
}
}else{//页面不正常 
alert("您所请求的页面有异常"); 


}

#25


var results=http_request.responseXML;
alert(results.xml);

#26


var results=http_request.responseText;
var Xsldom=new ActiveXObject("Microsoft.XMLDOM");
Xsldom.async=false;
Xsldom.loadXML(returnstr);
if(Xsldom.documentElement.tagName=="ROOT")
   {
 var Tables=Xsldom.documentElement.childNodes;
 var Row,Col;
 for(i=0;i<Tables.length;i++)
 {
        excelcol=1;
        excelrow++;
Row=Tables.item(i);
if(Row.tagName=="L") //标签标识,根据自己的情况修改
{
Col=Row.childNodes;
for(j=0;j<Col.length;j++)
{
    alert(Col.item(j).text);
}
}
 }

#27


以上代码是我使用XMLDOM组件从获取的XML中读取内容,并把它写到EXCEL中去生成打印报表的例子的一段代码,所以有些多余变量,比如:

        excelcol=1;
        excelrow++;

#28


楼上的几位说的比详细.
xml可以读到但找不到节点
1确定xml可以得到内容
2确定xml格式正确
3setContentType的设置是否正确.
具体问题帮不了,自己解决

#29


在这儿还没看见 大星星阿

#30


#31


UP

#32


路过学习

#33


var responsemes=requestmes.responseText;
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=true;
xmlDoc.loadXML(responsemes);
var mess=xmlDoc.getElementsByTagName("mydata")[0].firstChild.nodeValue;
用这个绝对有值.

#34


#35


首先,你确定你服务端的返回的xml不为空吗.
     检查一下.
其次,检查js获取xml是否有误.
    我当初也出现这样的问题,是因为服务类在返回xml时,使用了super.service(request, response); 所以没有XML.

#36


up

#1


你先看看 http_request.responseXML 这里是什么值!
如果有值,你试试 results = http_request.responseXML.lastChild;

#2


不行啊,还是为'null';http_request.responseXML 好象没有读取到xml,但是xml中确实有值,郁闷

#3


我也遇見過這問題,老是報空!
頂下@!!1

#4


别啊,遇到过您是怎么解决的.
英雄们帮帮我吧

#5


我顶 再顶

#6


情况说的不够明白!

#7


你把哪个xml写到你的response里面去了吗????

#8


var results=http_request.responseXML;
         alert(results);----->object
         var root=results.documentElement;
         alert(root);------>null
怎么把xml写到你的response里啊?我 alert(http_request.responseText);可以得到xml.
郁闷 极度郁闷

#9


顶,来个英雄 帮帮我

#10


.documentElement是what?

#11


你 想要得到什么 ?  解析http_request.responseXML  用getElementsByTagName()

#12


您的意思是 var results=http_request.responseXML.getElementsByTagName('root');
??

#13


up

#14


ding

#15


看来csdn真是堕落了,都没人回答.哎呀 好凄凉

#16


帮你顶下

#17


帮你顶

#18


bang ding

#19


建议你看一下服务器端程序,有可能流没有close,流没有close的情况就和你所说的一样.

#20


读取XML应该是先读取它的根,在读它的孩子吧。
getElementsByTagName()是读取对象,要读值的话可以用下面的试试:
var results=http_request.responseXML.getElementsByTagName('root').item(0).text;
说的有什么错误还请包涵。

#21


还是不行  比较郁闷.

#22


幇顶了

#23


你把整格代码都贴出来吧。是想干什么的,你是在JSP页面调用JS处理的吗?

#24


这是一段判断案件状态的代码你看看。
function processRequest(){ 
if(http_request.readyState==4){ //判断对象状态 
if(http_request.status==200){//信息已经成功返回,开始处理信息 
var xml = http_request.responseXML;
var validaj = xml.getElementsByTagName("validaj").item(0).text;
var validstat=xml.getElementsByTagName("validstat").item(0).text;
var validauth=xml.getElementsByTagName("validauth").item(0).text;
var nsrnbm=xml.getElementsByTagName("nsrnbm").item(0).text;
var name_nsr=xml.getElementsByTagName("name_nsr").item(0).text;
var addr=xml.getElementsByTagName("addr").item(0).text;
var tel=xml.getElementsByTagName("tel").item(0).text;
var lxr=xml.getElementsByTagName("lxr").item(0).text;
var date_ssq=xml.getElementsByTagName("date_ssq").item(0).text;
var date_ssz=xml.getElementsByTagName("date_ssz").item(0).text;
var zclxmc=xml.getElementsByTagName("zclxmc").item(0).text;
try{
if(validaj=="not"){
alert("您输入的案件编号不存在!");
document.getElementById("id_aj").value="";
document.getElementById("name_nsr").value="";
document.getElementById("nsrnbm").value="";
ajzt=false;
}else if(validstat=="not"){
alert("您输入的案件无法执行此功能!");
document.getElementById("id_aj").value="";
document.getElementById("name_nsr").value="";
document.getElementById("nsrnbm").value="";
ajzt=false;
}else if(validauth=="not"){
alert("您无权对这个案件进行此操作!");
document.getElementById("id_aj").value="";
document.getElementById("name_nsr").value="";
document.getElementById("nsrnbm").value="";
ajzt=false;
}else{
/*
这里的字段是按照顺序取得的,如果页面中没有相应的ID对象,则会跳出,下面的代码不会执行
*/
document.getElementById("name_nsr").value=name_nsr;
document.getElementById("nsrnbm").value=nsrnbm;
ajzt=true;
try{
document.getElementById("addr_sd").value=addr;
document.getElementById("lxr").value=lxr;
document.getElementById("tel").value=tel;
}catch(exception){}
try{
document.getElementById("date_ssq").value=date_ssq;
document.getElementById("date_ssz").value=date_ssz;
document.getElementById("zclxmc").value=zclxmc;
}catch(exception){}
}
}catch(exception){

}finally{
if(toValidHz){
validHz();
}
}

if(document.getElementById("id_aj").value==""){
document.getElementById("id_aj").focus();
}
}else{//页面不正常 
alert("您所请求的页面有异常"); 


}

#25


var results=http_request.responseXML;
alert(results.xml);

#26


var results=http_request.responseText;
var Xsldom=new ActiveXObject("Microsoft.XMLDOM");
Xsldom.async=false;
Xsldom.loadXML(returnstr);
if(Xsldom.documentElement.tagName=="ROOT")
   {
 var Tables=Xsldom.documentElement.childNodes;
 var Row,Col;
 for(i=0;i<Tables.length;i++)
 {
        excelcol=1;
        excelrow++;
Row=Tables.item(i);
if(Row.tagName=="L") //标签标识,根据自己的情况修改
{
Col=Row.childNodes;
for(j=0;j<Col.length;j++)
{
    alert(Col.item(j).text);
}
}
 }

#27


以上代码是我使用XMLDOM组件从获取的XML中读取内容,并把它写到EXCEL中去生成打印报表的例子的一段代码,所以有些多余变量,比如:

        excelcol=1;
        excelrow++;

#28


楼上的几位说的比详细.
xml可以读到但找不到节点
1确定xml可以得到内容
2确定xml格式正确
3setContentType的设置是否正确.
具体问题帮不了,自己解决

#29


在这儿还没看见 大星星阿

#30


#31


UP

#32


路过学习

#33


var responsemes=requestmes.responseText;
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=true;
xmlDoc.loadXML(responsemes);
var mess=xmlDoc.getElementsByTagName("mydata")[0].firstChild.nodeValue;
用这个绝对有值.

#34


#35


首先,你确定你服务端的返回的xml不为空吗.
     检查一下.
其次,检查js获取xml是否有误.
    我当初也出现这样的问题,是因为服务类在返回xml时,使用了super.service(request, response); 所以没有XML.

#36


up