【发布时间】:2013-10-23 20:39:32
【问题描述】:
我创建了一个使用 JQuery 解析 XML 的 JavaScript 程序。下面是代码和示例 XML。运行它时,它在 IE 8 上运行良好。但是当我在 Chrome 或 FireFox 中测试时,$.parseXML 确实加载了 xml。我没有看到任何错误,它只是停止了。我已经发出警报,看看它在哪里停止以确定问题。任何人都可以帮忙吗?我不明白为什么 jQuery 在 IE 8 中运行,而不是在 chrome 或 Firefox 中运行。
XML 很简单
<?xml version="1.0" ?>
<userinfo>
<rc>Y</rc>
<un>George</un>
</userinfo>
或
<?xml version="1.0" ?>
<userinfo>
<rc>N</rc>
<un></un>
</userinfo>
已使用 JQuery 创建了 XML 的 JavaScript 解析,但仅适用于 IE 8。
function userLookup( v_page, v_uid, v_pwd )
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange= function(){
if(xmlHttp.readyState==4)
{
var xml = xmlHttp.responseText;
var xmlDoc = $.parseXML( xml );
var $xml = $( xmlDoc );
var $returncode = $xml.find( "rc" );
if($returncode.text() == 'N')
{
alert("Invalid Userid/Password");
}
else if ($returncode.text() == 'Y')
{
document.getElementById('WelcomeMessage').innerHTML = "Welcome " + loginuser;
document.getElementById('dialogLogIn').style.display = 'none';
} else {
alert( $returncode.text() );
}
}
}
xmlHttp.open("GET",v_page+"?v_uid="+v_uid+"&v_pwd="+v_pwd,true);
xmlHttp.send(null);
}
【问题讨论】:
-
在没有 ajax 的情况下测试它。它对我来说很好用:jsfiddle.net/Tentonaxe/66XFw || jsfiddle.net/Tentonaxe/66XFw/1 调试 101. 去掉多余的部分,找出错误发生的确切位置。在这种情况下,这不是因为
$.parseXML。 -
我也这样做了,取消了对 xml 的调用,然后将 xml 放入其中,它工作正常。我开始使用 xml 文件,我从 xml 返回中删除了 ,它也开始在应用程序中为我工作。也将研究 .ajax 以获取 jQuery 中的所有内容,认为这样也会更稳定,谢谢。
标签: javascript jquery google-chrome parsexml