【问题标题】:Javascript XML http request can not open RSS file from server, XML status = 0Javascript XMLhttprequest 无法从服务器打开 RSS 文件,XML 状态 = 0
【发布时间】:2011-08-14 13:43:19
【问题描述】:

我正在尝试使用 javascript 解析 RSS 提要,但我最近遇到了从本地主机和 Web 服务器打开 XML 文件的问题(我在工作时总是使用 http:// 关键字访问我的本地文件在本地主机上)。我在所有浏览器中都收到了 XML 状态 0 而不是状态 200(已建立)。仅当我尝试打开服务器上托管的 XML 文件时才会出现此问题。这是我所拥有的:

if(window.ActiveXObject)//IE
    xml_req = new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest)
    xml_req = new XMLHttpRequest();
    else alert('no ajax support');

xml_req = new XMLHttpRequest();
var url = "http://www.something.net/rss.xml";
xml_req.open("GET", url, true);

xml_req.onreadystatechange = function(){
    if(xml_req.readyState == 4){
        if(xml_req.status == 200){
            if(xml_req.responseText != null)
                .....//DO STUFF
            else{
                alert("Error");
                return false;
            }
        }
        else{
                  //THIS IS WHERE THE ERROR OCCURS,STATUS=0 INSTEAD OF 200
               alert("XML Status = " + xml_req.status + xml_req.statusText);}
    }
}

当我打开未托管在服务器上的 XML 本地文件时,一切正常。例如,下面的代码可以很好地在 localhost 中打开 rss 文件:

var url = "rssLocalhost.xml";
xml_req.open("GET", url, true);

请帮忙!将不胜感激任何人的任何建议。谢谢!

【问题讨论】:

    标签: javascript xml rss xmlhttprequest xml-parsing


    【解决方案1】:

    can't make requests to other sites。您要么需要通过自己的服务器代理数据,要么使用 JSON-P 数据源。

    【讨论】:

    • 真的很有帮助,谢谢你的回答。因此,如果我尝试使用来自 JSON-P 数据源的数据,数据是原始 XML 还是我必须更改解析器中的一些代码? (因为我的解析器目前只解析 XML 文件)
    • 如果你有 JSON-P 数据源,那么它将是 JSON-P,而不是 XML。
    • 是的,如果我使用 JSONP,看起来会容易得多,但这对我来说是一次很好的体验 :)
    猜你喜欢
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    相关资源
    最近更新 更多