Javascript xml数据未显示在html页面中

Javascript xml数据未显示在html页面中,javascript,html,xml,Javascript,Html,Xml,我只是尝试获取xml数据并使用jscript在html页面中显示它。根据我写的一个示例代码是 <script> xmlDoc=loadXMLDoc("http://api.openweathermap.org/data/2.5/weather?q=London&mode=xml"); x=xmlDoc.getElementsByTagName('city'); for(i=0;i<x.length;i++) {

我只是尝试获取xml数据并使用jscript在html页面中显示它。根据我写的一个示例代码是

   <script>
     xmlDoc=loadXMLDoc("http://api.openweathermap.org/data/2.5/weather?q=London&mode=xml");
     x=xmlDoc.getElementsByTagName('city');

     for(i=0;i<x.length;i++)
         {
            att=x.item(i).attributes.getNamedItem("name");
            document.write(att.value + "<br>");
         }
   </script>

   <script > 
       function loadXMLDoc(dname)
         {
           if (window.XMLHttpRequest)
            {
               xhttp=new XMLHttpRequest();
            }
           else
            {
               xhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
         xhttp.open("GET",dname,false);
         xhttp.send();
         return xhttp.responseXML;
        }
     </script>

xmlDoc=loadXMLDoc(“http://api.openweathermap.org/data/2.5/weather?q=London&mode=xml");
x=xmlDoc.getElementsByTagName('city');
对于(i=0;iAjax是异步的

你需要了解一下


当你收到回复时,这就行了。我想你会遇到臭名昭著的问题

总之,在AJAX中,您不能从远程服务器、应用程序或网站加载XML内容(这意味着XML数据不能来自您自己域之外的任何域)


解决此问题的方法有很多,例如使用,而不是XML,或者在运行代码时使用来破坏客户端应用程序所处的沙箱(如果您的用户浏览器和您请求的服务器堆栈都支持此代码).

实际上,您的代码运行良好。@demo\u Ashif您在哪个浏览器中测试?我觉得代码很好。thnx为fiddle。但是我现在该怎么办?我没有得到数据。:(@Rob chrome andfirefox@demo_Ashif尝试另一种调试方法,而不是document.write,例如
console.log(att.value)
alert(att.value)
。有控制台错误吗?CORS不是问题所在;它是一个开放的API,允许跨源请求。是的。它是一个开放的API。CORS可能不像前面提到的那样是问题所在,它现在似乎支持WeatherMap API:所以这可能是您的浏览器版本的问题,正如@r3mus提到的,它在JSFIDLE中对我来说也很好-FF26。@remu如果您在Chrome或FireFox中使用开发者工具(F12),并且由于任何原因失败,您应该在控制台日志中看到一些输出以及@r3mus所做的更改,这将非常有帮助。