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.

Если кто-то может подтвердить это или предложить другие возможности, я также хотел бы услышать о них.

С моей стороны все хорошо работает с 2 дня.

Я полагаю, что при тестировании на консоли YQL результаты кэшируются. Если вы перейдете в режим отладки, он не будет использовать кэшированные результаты, поэтому вы будете лучше видеть любые проблемы.

Другие вопросы по тегам