在javascript中阅读RSS XML(跨域)

时间:2014-03-25 12:53:23

标签: javascript jquery ajax xml rss

我想阅读rss(xml)文件但不使用google rss feed 我已经尝试了jsonp但是它下载了文件并且它抛出了一个错误“Uncaught SyntaxError:Unexpected token<”

$.ajax({
        type: "GET",
        url:'https://news.google.com/?output=rss',
        //url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),     
        dataType: "xml",
        contentType: "text/xml; charset=utf-8",
        headers: { "Access-Control-Allow-Origin":"*",},                

        success: function(xml) {
        alert("success");
        }   
});

PLZ伙伴们帮助我......

2 个答案:

答案 0 :(得分:1)

$.getJSON("//ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?", {
    num: 10,
    q: url
}).done(function (data) {
    console.log(data);
});

注意:

  • 你过度了。请勿尝试在客户端指定服务器实际必须提供的信息(内容类型,允许原始标头,数据类型)。
  • 你不想要XML,你想要JSON。
  • 跨源JSON请求的名称是JSONP。
  • 如果使用the getJSON() API method,jQuery会为您实现。除了向网址添加"callback=?"之外,您无需执行任何操作。
  • 使用jQuery Deferred回调(thendonefailalways)。它们使您的代码变得很多更灵活。
  • 也看一下文档。 https://developers.google.com/feed/v1/jsondevguide

答案 1 :(得分:0)

您基本上无法实现Web 客户端 RSS阅读器,因为您无法确定内容提供商是否会为其Feed设置正确的CORS标头;我的建议是不要浪费你的时间阅读无休止的CORS / JSONP讲座(并尝试误导性代码),而是实施服务器解决方案(比如说Pétrolette)并继续前进。