在javascript中阅读RSS XML(跨域)

use*_*ser 7 javascript xml ajax rss jquery

我想阅读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");
        }   
});
Run Code Online (Sandbox Code Playgroud)

PLZ伙计们帮帮我..

Tom*_*lak 3

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

笔记:

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

  • 正如其他人所指出的,RSS 不是跨域友好的。Goole 的 Feed API 即将消失。[RSS to API](https://github.com/csm123/RSStoAPI) 是一个简单的应用程序,您可以托管在 Heroku 上或任何提供 JavaScript 可以查询以访问 RSS 源的 API 的地方。这绕过了那些讨厌的跨源限制。我为类似的用例编写了它。 (3认同)
  • @aspiringwebdev 这是一个误导性的陈述。RSS 作为一种技术并不是跨域不友好的。只需设置正确的 CORS 标头即可使 RSS 提要跨源友好,就像任何其他 HTTP 资源一样。RSS 提要的“内容提供商”出于无知或懒惰而跨域不友好。 (3认同)