使用Javascript从其他服务器读取XML时出错

Error when reading an XML with Javascript from a different server

本文关键字:XML 出错 读取 服务器 Javascript 其他 使用      更新时间:2023-09-26

我在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跨域…

此链接可能对您有更多帮助