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天开始,一切都运作良好。