xml数据不显示在HTML页面
我只是想获取XML数据,并使用jscript在HTML页面中显示它。据this tutorial我写了一个示例代码是xml数据不显示在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>
我在HTML页面输出应该是“伦敦”。但它什么也没有显示。或者请告诉我的错误。
我认为你正在运行到臭名昭著"same-origin policy" problem
总之,在AJAX可以”业务t加载来自远程服务器,应用程序或网站的XML内容(这意味着XML数据不能源自你自己的域以外的任何域)
有几个解决此问题的方法例如使用server-side proxy而不是XML使用JSONp或使用CORS来破坏您的客户端应用在运行该代码时所在的沙箱(如果用户的浏览器和您要求支持的服务器堆栈) 。
CORS不是问题;它是一个开放的API,允许跨源请求 – brandonscript
是的,它是一个开放的API –
CORS可能不是上述问题,它现在支持WeatherMap API:http://bugs.openweathermap。 org/issues/152 所以这可能是你的浏览器版本的问题,因为@ r3mus提到它对JSFiddle来说工作正常 - FF26。 – bcmoney
其实你的代码工作正常。 http://jsfiddle.net/remus/G7eSk/ – brandonscript
@demo_Ashif你在测试什么浏览器?这段代码对我来说看起来很好。 – Rell
thnx小提琴。但我现在应该怎么做?我没有收到数据。 :( –