Ответ на запрос JSONp на вызов obeed на YouTube с ошибкой «недопустимая метка» - PullRequest
6 голосов
/ 24 августа 2010

Я выполняю JSONp-вызов на YouTube с помощью oembed, и при ответе firebug выдает ошибку «неверная метка»

Вот мой код

site = "www.youtube.com";
url = "http://www.youtube.com/watch?v=slORb622ZI8";

$.getJSON("http://"+site+"/oembed?callback=?",{"format":"json","url":url},function(data){
    alert("hello:\n"+data);
    alert(data.provider_url);
});

Кто-нибудь сталкивался с подобной проблемой с oembed jsonp-запросами?

Ответы [ 2 ]

3 голосов
/ 24 августа 2015

Задача

API YouTube не поддерживает JSONP - см .:

Решение

Нет необходимости в прокси на стороне сервера и не требуются ключи API.

Вместо:

var url = "http://www.youtube.com/watch?v=slORb622ZI8";

$.getJSON("http://www.youtube.com/oembed?callback=?",
    {"format": "json", "url": url}, function (data) {
    alert("hello:\n"+data);
    alert(data.provider_url);
});

Попробуйте, используя сервис Noembed :

var url = "http://www.youtube.com/watch?v=slORb622ZI8";

$.getJSON("https://noembed.com/embed?callback=?",
    {"format": "json", "url": url}, function (data) {
    alert("hello:\n" + data);
    alert(data.provider_url);
});

В качестве бонуса это также будет работать со ссылками Vimeo при изменении url на:

var url = "https://vimeo.com/45196609";

и многие другие поддерживаемые сайты .

Демо

См. DEMO на JS Fiddle.

Смотри также

Смотрите также эти вопросы:

0 голосов
/ 16 апреля 2013

API Oembed YouTube в настоящее время не переносит ответ JSON в обратный вызов. JSONP просто не поддерживается, и кажется, что это не изменится в ближайшее время: https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/5KuXxlLK07g

Вот билет для запроса связанной функции: https://code.google.com/p/gdata-issues/issues/detail?id=4329

Самое простое решение - внедрить небольшой прокси-сервер на стороне сервера для выполнения запросов от имени клиента.

...