这个情况倒是没有碰到过。 一般如果能够拿到responseText那么不管IE还是Mozilla都可以拿到,但是如果IE或者Mozilla其中一个拿到responseXML不一定另外一个也能拿到。因为IE和Mozilla对xml文档的要求不一样,有些格式的xml文档IE认但是mozilla可能认为是错误的,反之也是。根据你的情况调试也比较简单,因为可以拿到responseText,说明你的do文件肯定不是xml格式,因此无论在IE或者mozilla中都不要想用responseXML去拿数据。 至于Mozilla拿responseText也是undefined,我想可能是你的代码在Mozilla中根本没有收到服务器的响应。 你可以一步步一调试一下。比如使用下面一段代码,看看几个状态是否都有debug出来 function ajaxReady(){ var state=ajax.readyState; switch(state) { case 0: case 1: case 2: case 3: if(debug>2) { myDebug("state=0--3"+state); } break; case 4: switch(ajax.status) { case 200: connectSuccess(); myDebug('request success') break; case 400: case 500: default: connectFail(); break; } break; default: myDebug("other state?"+state); break; } }; var debug=3; 设置调试等级。 function myDebug(message){调试代码,比如直接使用alert(message)}
返回的都是undifined
返回应该是文本格式"text/html"而不是xml格式。
而http://abc.com/abc.xml返回的是xml格式。
原因是服务器对xml后缀的文本格式文件默认以xml格式发送。而其他的大多数以 html格式发送需要在你的do文件中设置header为xml格式。
<?xml version="1.0"?>
<Root>
....
</Root>
形式输出
我已经定义了response.setHeader("Content-Type","text/xml");
但是仍然取不到任何数据
无论responseText还是responseXML反馈的都是undefined
xml.load("http://abc.com/do?id=4464");
sanshisong.cnblogs.com
而且解决了兼容性的问题
特别是shenjf2000(一路走来)
目前有了新的进展
已经在ie下可以拿到responseText了
但是在mozilla下responseText和responseXML仍然是undefined
有没有好的建议?
先结帐。
一般如果能够拿到responseText那么不管IE还是Mozilla都可以拿到,但是如果IE或者Mozilla其中一个拿到responseXML不一定另外一个也能拿到。因为IE和Mozilla对xml文档的要求不一样,有些格式的xml文档IE认但是mozilla可能认为是错误的,反之也是。根据你的情况调试也比较简单,因为可以拿到responseText,说明你的do文件肯定不是xml格式,因此无论在IE或者mozilla中都不要想用responseXML去拿数据。
至于Mozilla拿responseText也是undefined,我想可能是你的代码在Mozilla中根本没有收到服务器的响应。
你可以一步步一调试一下。比如使用下面一段代码,看看几个状态是否都有debug出来
function ajaxReady(){
var state=ajax.readyState;
switch(state)
{
case 0:
case 1:
case 2:
case 3:
if(debug>2)
{
myDebug("state=0--3"+state);
}
break;
case 4:
switch(ajax.status)
{
case 200:
connectSuccess();
myDebug('request success')
break;
case 400:
case 500:
default:
connectFail();
break;
}
break;
default:
myDebug("other state?"+state);
break;
}
};
var debug=3; 设置调试等级。
function myDebug(message){调试代码,比如直接使用alert(message)}