Javascript 向页面添加DOCTYPE时的xmlhttp状态200消息
我将以下代码放入函数中,当调用函数时,它将加载我的XML文件并将其显示在消息框中:Javascript 向页面添加DOCTYPE时的xmlhttp状态200消息,javascript,xml,doctype,xmlhttprequest,Javascript,Xml,Doctype,Xmlhttprequest,我将以下代码放入函数中,当调用函数时,它将加载我的XML文件并将其显示在消息框中: if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
} else
{
alert('Panel not communicating.Reason: '+xmlhttp.status);
}
}
xmlhttp.open("POST","myfile.xml",false);
xmlhttp.send();
上面的代码做了所有它想要做的事情
但是,只要我将以下代码添加到页面顶部:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
然而,它仍然像我希望的那样加载我的XML文件
在搜索了它之后,说xmlhttp状态200表示“OK”
有人知道它为什么显示此消息吗?这可能意味着
xmlhttp.readyState
正在转换为4(“完成”)以外的状态——如果整个页面不立即下载,则可能会发生这种情况,这很可能是错误的。当xmlhttp.readyState!=4
,而不是将其视为错误条件
您还应该强烈考虑使用JavaScript框架,如jQuery,因为这样可以节省很多不必要的努力。例如,这里的所有代码都可以简化为:
$.post("myfile.xml", function(data) {
alert(data);
}).error(function() {
alert("Panel not communicating.");
});
我认为您添加的代码不应该出现在XML中,它是用于HTML的,因此浏览器可能无法解析文件,这使得
xmlhttp.readyState==2
,我不确定这个值,请检查一下。我不能使用jQuery。我正在使用它,但我的设备太慢,无法加载jQuery js文件,所以我删除了它,现在加载速度很快,但现在我遇到了这个问题。
$.post("myfile.xml", function(data) {
alert(data);
}).error(function() {
alert("Panel not communicating.");
});