使用Javascript从其他服务器读取XML时出错
Error when reading an XML with Javascript from a different server
我在HTML中的iPhone应用程序工作。它需要从存储在远程服务器中的xml中检索内容,并在列表中显示其内容。
当xml文件用下面的代码存储在同一服务器中时,我已经实现了这一点: <body>
<div id="container">
<div id="header">
<h1><a href="./">BurgerFast</a></h1>
<p>Menú</p>
<div>
<div id="nav">
<ul>
<span id="lista"></span>
</ul>
</div>
<div id="footer">
<ul>
<li><a href="/assets/cl.png">Acerca de</a></li>
<li><a href="/assets/cl.png">Ayuda</a></li>
</ul>
</div>
</div>
</div>
</div>
<script type="text/javascript">
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","assets/note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var item = xmlDoc.getElementsByTagName("item")
var myElems = "";
for(i = 0 ; i < item.length ; i++){
myElems = myElems + "<li><a>" + item[i].getElementsByTagName("name")[0].childNodes[0].nodeValue + "</li></a>";
}
document.getElementById("lista").innerHTML = myElems;
</script>
</body>
到目前为止,没有问题。由于该文件托管在同一服务器上工作很好,但我希望能够从不同的服务器加载xml,但我的。当我改变行:
xmlhttp.open("GET","assets/note.xml",false);
,并保持如下:
xmlhttp.open("GET","http://173.236.56.146/~crayonli/xml/note.xml", true);
它告诉我每次xmldoc为空,我不明白,这是相同的xml。
我就是看不出我的错在哪里。有人知道吗?
不能跨不同域使用XmlHttp。不支持跨域。要实现它,您可以使用代理机制或只需谷歌xmlhttp跨域…
此链接可能对您有更多帮助
相关文章:
- javascript中的数组出错
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 我应该如何从xml文件构建一个javascript页面
- 将XML转换为普通的旧JavaScript对象
- 在Meteor项目中安装并包含npm模块后出错
- 解析JSON并从中删除对象会出错
- AngularJS指令出错-无法读取属性'编译'的未定义
- jQuery AJAX write to XML
- 如何将childNodes用于XML文档
- 使用javascript在MVC中查找网格长度时出错
- 尝试调用AngularJS上的函数时出错
- 使用JQuery将XML解析为SQLite DB时出错:所有行都具有相同的值
- 转换为 JSON 的 XML 节点会出错
- ExtJS 5中表单提交的XML响应出错
- JavaScript 中的 document.write 和 XML 出错
- 使用Javascript从其他服务器读取XML时出错
- 使用javascript从静态HTML页面编辑本地xml文件时出错
- 解析Ajax返回的XML时出错
- 使用AJAX从xml获取数据时出错
- 向XML添加TAG和使用变量时出错(E4X)