【问题标题】:Error when reading an XML with Javascript from a different server使用 Javascript 从其他服务器读取 XML 时出错
【发布时间】:2012-01-27 22:00:18
【问题描述】:

我正在使用 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。

我只是看不出我的错误在哪里。谁能告诉我?

【问题讨论】:

标签: javascript xml xmlhttprequest


【解决方案1】:

您不能跨不同域使用 XmlHttp。不支持跨域。 为了实现它,您可以使用代理机制或只是 google xmlhttp 跨域...

此链接可能对您有更多帮助XmlHttp Corss Domain Proxy

【讨论】:

  • 这就解释了为什么我从来没有找到跨域的例子。我真的很感激你们的帮助。
  • 如果你对某个答案感到满意,你接受它很好:)
  • 您可以跨域使用 XHR,但前提是服务器返回 JSONP。如果服务器只返回 XML,那么您需要制作自己的代理。注意:在 php 中部署代理比 .NET 容易得多,但请注意,您需要确保您的代理仅与 1 个服务器通信,并且 HTML 对任何 GET 参数等进行编码,以防止有人利用您的代理 .. 类似的帖子PHP 代理答案:stackoverflow.com/questions/11778074/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
  • 2020-08-27
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多