Javascript 无法读取属性';getElementsByTagName';空的

Javascript 无法读取属性';getElementsByTagName';空的,javascript,xml,Javascript,Xml,我已经四处寻找这个问题的答案大约两天了。我似乎不知道这是怎么回事。所有这些在过去似乎都起了作用,但现在已经不起作用了 XML: 我得到的错误是 Cannot read property 'getElementsByTagName' of null 当我尝试x=xmlDoc.getElementsByTagName(“结果”);当我查看Chrome中的调试时,xml会灵巧地出现在网络响应中。您可以在的onreadystatechange上使用事件处理程序来确保请求完成。如果readyState的

我已经四处寻找这个问题的答案大约两天了。我似乎不知道这是怎么回事。所有这些在过去似乎都起了作用,但现在已经不起作用了

XML:

我得到的错误是

Cannot read property 'getElementsByTagName' of null

当我尝试x=xmlDoc.getElementsByTagName(“结果”);当我查看Chrome中的调试时,xml会灵巧地出现在网络响应中。

您可以在的
onreadystatechange
上使用事件处理程序来确保请求完成。如果readyState的状态为4,则操作完成


当前您正在请求尚未传输的数据。

除了确保xmlhttp.readyState==4和&xmlhttp.status==200之外,如果您在从服务器发送xml数据之前输出了任何内容、字母、字符或字符串,也会发生此错误。例如,假设在java中有一个名为sendXMLdata的方法/函数,然后在servlet中打印字符串“connected”,然后再调用该方法: .... out.println(“已连接”); String data=“我的名字” sendXMLdata(响应、数据);

从浏览器源查看时,输出如下: 有联系的 我的名字


因此,这肯定会给您一个错误,因为浏览器无法解析字符串“connected”,因为它不是呈现xml数据的写入格式。

我使用的是xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){xmlDoc=xmlhttp.responseXML;x=xmlDoc.getElementsByTagName(“ZipCodes”);}xmlhttp.open(“GET”,“_checkzip.php?zip=“+str,false”);xmlhttp.send();但无法读取ZipCodes上null的属性“getElementsByTagName”。如果使用alert(xmlhttp.responseText)我仍然可以看到所有的XML,而不是responseXML。如果您的服务器不使用text/XML内容类型发回数据,您的浏览器将无法识别XML,也无法将其解析为XML文档。您可以尝试进行检查,或者如果您确定它应该是XML,则可以使用('text/XML')覆盖mimetype来实施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.open("GET","_checkzip.php?zip="+str,true);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

x=xmlDoc.getElementsByTagName("results");
i=0;



    document.forms["signup"]["City"].value=(x[i].getElementsByTagName("city")[0].childNodes[0].nodeValue);
    document.forms["signup"]["states"].value=(x[i].getElementsByTagName("state")[0].childNodes[0].nodeValue);
    document.forms["signup"]["TimeZone"].value=(x[i].getElementsByTagName("timezone")[0].childNodes[0].nodeValue);
Cannot read property 'getElementsByTagName' of null