Yahoo YQL RSS - Неверный запрос
Для создания междоменных запросов AJAX с помощью jQuery я пытаюсь использовать 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 = '<div class="feedListWrap">';
if(res.query && res.query.results && res.query.results.item){
//code goes here
} else {
html += '<div class="feedEmpty">The feed is currently not available due to server issues. Check back soon!</div>';
}
html += '</div>';
rssWrap.append(html);
}, "jsonp");
Это работало нормально, но теперь я получил ошибку Bad Request в ответе 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: ссылка
При попытке проверить в консоли 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": "<div class=\"feedThumb\"><img width=\"125\" height=\"125\" src=\"https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2017/08/03163918/jane-rowe_700px-125x125.jpg\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" srcset=\"https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2017/08/03163918/jane-rowe_700px-125x125.jpg 125w, https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2017/08/03163918/jane-rowe_700px-150x150.jpg 150w\" sizes=\"(max-width: 125px) 100vw, 125px\" /></div><div class=\"feedExcerpt\">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.</div>",
"encoded": "<div class=\"feedThumb\"><img width=\"125\" height=\"125\" src=\"https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2017/08/03163918/jane-rowe_700px-125x125.jpg\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" srcset=\"https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2017/08/03163918/jane-rowe_700px-125x125.jpg 125w, https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2017/08/03163918/jane-rowe_700px-150x150.jpg 150w\" sizes=\"(max-width: 125px) 100vw, 125px\" /></div><div class=\"feedExcerpt\">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.</div>"
},
{
"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": "<div class=\"feedThumb\"><img width=\"125\" height=\"125\" src=\"https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2016/03/22215806/Keith-Ambachtsheer-Head_Shoulders_Jan-700x500-2016-125x125.jpg\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" srcset=\"https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2016/03/22215806/Keith-Ambachtsheer-Head_Shoulders_Jan-700x500-2016-125x125.jpg 125w, https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2016/03/22215806/Keith-Ambachtsheer-Head_Shoulders_Jan-700x500-2016-150x150.jpg 150w\" sizes=\"(max-width: 125px) 100vw, 125px\" /></div><div class=\"feedExcerpt\">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? </div>",
"encoded": "<div class=\"feedThumb\"><img width=\"125\" height=\"125\" src=\"https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2016/03/22215806/Keith-Ambachtsheer-Head_Shoulders_Jan-700x500-2016-125x125.jpg\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" srcset=\"https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2016/03/22215806/Keith-Ambachtsheer-Head_Shoulders_Jan-700x500-2016-125x125.jpg 125w, https://dmmn26wgpgtie.cloudfront.net/wp-content/uploads/2016/03/22215806/Keith-Ambachtsheer-Head_Shoulders_Jan-700x500-2016-150x150.jpg 150w\" sizes=\"(max-width: 125px) 100vw, 125px\" /></div><div class=\"feedExcerpt\">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? </div>"
},
...
]
}
}
}
Любой совет, пожалуйста?
4 ответа
Я думаю, что это проблема со стороны Yahoo YQL, не связанная с используемым кодом или чем-то еще. Если вы обновите запрос, он случайным образом загружается с ошибкой или штрафом.
Я думаю, что мы (пользователи) ничего не можем с этим поделать. Yahoo нужно исправить это...
У меня точно такая же проблема. Мой код немного отличается, но принцип тот же - я запускаю RSS-канал через YQL, чтобы обойти междоменную проблему. До вчерашнего дня он работал нормально, но теперь возвращает ту же ошибку Bad Request, однако Используемый мной запрос работает каждый раз в консоли YQL.
Единственное возможное решение, которое мне удалось найти, находится в теме: jQuery с YQL RSS-лентами, случайным образом возвращающими ноль
Предполагается, что это может быть связано с тайм-аутом API, которого нет на консоли YQL.
Если кто-то может подтвердить это или предложить другие возможности, я также хотел бы услышать о них.
Я полагаю, что при тестировании на консоли YQL результаты кэшируются. Если вы перейдете в режим отладки, он не будет использовать кэшированные результаты, поэтому вы будете лучше видеть любые проблемы.