Javascript xml数据未显示在html页面中
我只是尝试获取xml数据并使用jscript在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++) {
<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所做的更改,这将非常有帮助。