Не удалось извлечь видео с помощью JSON из YouTube - PullRequest
0 голосов
/ 04 марта 2012

Иногда я получаю эту ошибку при извлечении видео YouTube с помощью JSON, вот пример:

XMLHttpRequest не может загрузить https://gdata.youtube.com/feeds/api/users/IcarusTouma?&alt=json. Origin http://localhost не разрешен Access-Control-Allow-Origin.

Я пробовал с jsonp, но YouTube не принимает jsonp.

Так что извлекайте видео из YouTube.

$. getJSON ('https://gdata.youtube.com/feeds/api/videos/' + id_video + '? & alt = json', function (data) {
if (typeof data! == "undefined" && data)
{
     var title = data ['entry'] ['title'] ['$ t'];
     var thumb = data ['entry'] ['media $ group'] ['media $ thumbnail'] [0] ['url'];
     var title = data ['entry'] ['author'] [0] ['name'] ['$ t'];
     $. getJSON ('https://gdata.youtube.com/feeds/api/users/' + author + '? & alt = json', function (data) {

     author_thumbnail var = data ['entry'] ['media $ thumbnail'] ['url'];
     $ ('.items').append(html_carousel (thumb, title, author_thumbnail, author, 5,' youtube ', id_video, author'));

     });
}
});

Ответы [ 2 ]

1 голос
/ 04 марта 2012

Только что проверив справочную документацию по API данных YouTube, как для JSON, так и для новых форматов JSON-C, они оба принимают JSON-P, что позволяет указать обратный вызов с помощью строкового параметра callback GET.Эта ссылка продемонстрирует, что это действительно так:

https://gdata.youtube.com/feeds/api/videos?q=baseball&v=2&alt=jsonc&callback=functionName

Длинный возврат объекта JSON обернут в вызов функции в этом случае functionName.Следующий URL-адрес - это тот же вызов, но в более старом (и несколько устаревшем) формате JSON:

https://gdata.youtube.com/feeds/api/videos?q=baseball&v=2&alt=json&callback=functionName

Данные немного отличаются, но тот же набор результатов обернут в другойпозвоните по номеру functionName.Теперь эти звонки были запросами, чтобы получить видео, которые соответствуют поисковому параметру («бейсбол»).Но я уверен, что просмотр их справочных документов (для форматов JSON-C и JSON ) даст то, что вам нужно для правильной работы, как вызов JSONP, указав обратный вызовв строке запроса.

0 голосов
/ 04 марта 2012

Используйте dataType: 'jsonp' в вызове ajax.

См .: http://jsfiddle.net/D4tEk/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...