Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从AJAX requestfor RSS提要返回XML_Jquery_Xml_Rss - Fatal编程技术网

Jquery 从AJAX requestfor RSS提要返回XML

Jquery 从AJAX requestfor RSS提要返回XML,jquery,xml,rss,Jquery,Xml,Rss,我有一个网站,我想向BBC的RSS提要请求返回最新新闻。问题是我得到了以下错误: Uncaught SyntaxError: Unexpected token < 编辑 以下是我在服务器上的代码,答案如下: public XmlDocument callBBCFeed() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://feeds.bbci.co.uk/news/r

我有一个网站,我想向BBC的RSS提要请求返回最新新闻。问题是我得到了以下错误:

Uncaught SyntaxError: Unexpected token < 
编辑 以下是我在服务器上的代码,答案如下:

    public XmlDocument callBBCFeed()
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://feeds.bbci.co.uk/news/rss.xml");
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader sr = new StreamReader(response.GetResponseStream());

        string result = sr.ReadToEnd();

        XmlDocument doc = new XmlDocument();

        doc.LoadXml(result);

        return doc;
    }
然后我在JS代码中这样调用它:

    var url = 'http://myServer/Global/callBBCFeed';



    $.ajax({
        url : url,
        dataType : 'xml',
        success : function(data) {
            console.log(data);
        }
    });

但是我得到了同源策略错误

您正在向XML资源发送跨域AJAX请求。由于限制而无法工作

你在这里完全是自相矛盾的:

dataType : 'jsonp'
然后向XML资源发送请求

允许跨域AJAX调用是完全不同的。它表示封装在javascript函数中的JSON响应,可能如下所示:

someFunctionName({"foo":"bar", "baz":"bazzy"})
如果远程服务器不支持JSONP,则必须在域上编写服务器端脚本,作为您和远程域之间的桥梁来获取XML文件。然后使用jQueryAjax向脚本发送请求


我建议您阅读以下内容,了解可以使用的不同技术。

检查$.ajax调用:
dataType:'jsonp'


RSS是XML。由于您的调用需要检索JSON,
这就是为什么我试图将数据类型设置为
jsonp
。但是如果远程服务器返回jsonp,您可以将数据类型设置为jsonp,否则就没有任何意义。如果远程服务器不支持JSONP,则有不同的解决方法。我已链接到一本指南,您可以阅读。但是,如果您正在抓取的远程域不允许这样的调用,最可靠的方法是在您的域上编写一个服务器端脚本,作为桥接。您应该了解,如果远程服务器不支持JSONP或CORS,那么在这个阶段,您的选择非常有限,无法从javascript中使用它。。我在我的服务器上创建了一个发出请求的方法,然后像这样调用:
var-url=http://myServer/Global/callBBCFeed';和我得到相同来源策略错误如果它在您的服务器上,不要使用绝对URL。使用相对值:
var url='/callBBCFeed'
。我尝试了
xml
的数据类型,但我得到了同源策略限制,这就是我尝试
jsonp
someFunctionName({"foo":"bar", "baz":"bazzy"})