Read news from feed using jquery (cross domain), Getting Uncaught SyntaxError: Unexpected token < error

Read news from feed using jquery (cross domain), Getting Uncaught SyntaxError: Unexpected token < error

我正在尝试从 SharePoint 站点及其跨域访问读取雅虎新闻提要。我正在使用提到的代码进行访问,但出现以下错误,我浏览了很多网站和博客,但仍然没有运气。 (我是 运行 这个代码在 Chrome 控制台)

Uncaught SyntaxError: Unexpected token <

$.ajax({
  type:"GET",
  url:"https://www.yahoo.com/news/rss/world",
  dataType: "jsonp",
  success: function(data){
    console.log(data);
  }
});

求推荐!

正如我从 API 中看到的,存在的数据不是 json,因此您会得到以下错误

将数据类型更改为 xml

$.ajax({
  type:"GET",
  url:"https://www.yahoo.com/news/rss/world",
  dataType: "xml",
  success: function(data){
    console.log(data);
  }
});

但是,如果 API 没有设置访问控制 headers,您可能会遇到 CORS 错误

如果你正在获取 Cors origin ,访问被拒绝或者不允许你获取这些数据, 最好的选择是在服务器端点击 http get 请求后解析数据,然后将其加载到 HTML 页面 所以步骤将是

  1. ajax会请求一个本地文件
  2. 然后服务器端(您请求的本地文件)将执行 http get 请求以拉取页面
  3. 这将获取整个页面,您可以通过了解数据的标签来获取数据
  4. 最终解析您的数据哟 json 对象并将其传递给您的 ajax 请求

Google API Feed 已经 deprecated.So 尝试使用 rss2json 网站阅读转换为 json.

的 rss
http://rss2json.com/

示例:

将你的 rss url 如下所示

url: "https://api.rss2json.com/v1/api.json?rss_url=" + "https://www.yahoo.com/news/rss/world",

代码

var url= 'https://www.yahoo.com/news/rss/world';
$.ajax({
  type: 'GET',
  url: "https://api.rss2json.com/v1/api.json?rss_url=" + url,
  dataType: 'jsonp',
  success: function(data) {
    console.log(data.feed.description);    
    console.log(data);
  }
});

这是有效的 jsfiddle:http://jsfiddle.net/yvzSL/1406/

我觉得应该对你有帮助