Yahoo YQL RSS – 错误请求

为了使用jQuery创建跨域AJAX请求,我正在尝试使用YQL RSS。

select * from rss where url='https://www.top1000funds.com/feed/most-popular-posts/' 

我的代码:

 var feed = "https://www.top1000funds.com/feed/most-popular-posts/"; var yql = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22"+encodeURIComponent(feed)+"%22&format=json&diagnostics=true&callback=&rnd=_"+event.timeStamp; console.log(yql); $.getJSON(yql, function(res) { var html = '
'; if(res.query && res.query.results && res.query.results.item){ //code goes here } else { html += '
The feed is currently not available due to server issues. Check back soon!
'; } html += '
'; rssWrap.append(html); }, "jsonp");

它工作正常但现在我在json响应上遇到错误请求问题而没有错误的文本描述:

 {"query":{"count":0,"created":"2017-08-25T03:09:09Z","lang":"en","diagnostics":{"publiclyCallable":"true","url":{"execution-start-time":"0","execution-stop-time":"2","execution-time":"2","http-status-code":"400","http-status-message":"Bad Request","content":"https://www.top1000funds.com/feed/most-popular-posts/"},"user-time":"2","service-time":"2","build-version":"2.0.164"},"results":null}} 

您可以使用url query: link进行测试

尝试检查YQL控制台时,它工作正常:

 { "query": { "count": 10, "created": "2017-08-25T02:54:38Z", "lang": "en-US", "diagnostics": { "publiclyCallable": "true", "url": { "execution-start-time": "1", "execution-stop-time": "8", "execution-time": "7", "content": "https://www.top1000funds.com/feed/most-popular-posts/" }, "user-time": "8", "service-time": "7", "build-version": "2.0.164" }, "results": { "item": [ { "title": "OTPP's private equity revolution", "link": "https://www.top1000funds.com/profile/2017/08/03/otpps-private-equity-revolution/", "pubDate": "Thu, 03 Aug 2017 06:39:33 +0000", "creator": "Sarah Rundell", "guid": { "isPermaLink": "false", "content": "http://www.top1000funds.com/?p=17673" }, "description": "
A deep dive into the world-class private capital division of OTPP, led by Jane Rowe, reveals a strategy of buying large direct stakes in companies, and a commitment to innovation.
", "encoded": "
A deep dive into the world-class private capital division of OTPP, led by Jane Rowe, reveals a strategy of buying large direct stakes in companies, and a commitment to innovation.
" }, { "title": "The value of the Canadian model", "link": "https://www.top1000funds.com/analysis/2017/08/08/the-value-of-the-canadian-model/", "pubDate": "Tue, 08 Aug 2017 04:53:00 +0000", "creator": "AMANDA WHITE", "guid": { "isPermaLink": "false", "content": "http://www.top1000funds.com/?p=17681" }, "description": "
A lot has been written about the superiority of the “Canadian model” for managing pensions, but can a value be assigned to this organisational design structure?
", "encoded": "
A lot has been written about the superiority of the “Canadian model” for managing pensions, but can a value be assigned to this organisational design structure?
" }, ... ] } } }

有什么建议吗?

我认为这是来自Yahoo YQL端的问题,与使用的代码或其他内容无关。 如果刷新查询,则随机加载错误或罚款。

我认为我们(用户)无法做到这一点。 雅虎需要解决这个问题……

我有完全相同的问题。 我的代码有点不同,但原理是一样的 – 我正在通过YQL运行RSS提要以解决跨域问题..它工作正常,直到昨天但它现在返回相同的错误请求错误,但是,查询我每次都在YQL控制台中使用工作。

我能找到的唯一可能的解决方案是在线程中: jQuery with YQL RSS Feeds随机返回null

它表明它可能与API上的超时有关,而YQL控制台上没有该超时。

如果有人能够证实这一点或提供其他可能性,我也想听听他们的意见。

我相信,在试用YQL控制台时,它会缓存结果。 如果你进入调试模式,它将不会使用cahed结果,所以你会看到更好的问题。

在我看来,从2天开始,一切都运作良好。