Проблема с использованием getJSON и YQL - PullRequest
1 голос
/ 09 июня 2011

Я пытаюсь получить представление видео на Youtube через YQL, чтобы отобразить его на своем сайте, я использую метод jQuery $.getJSON, чтобы получить результат вызова YQL, который у меня получается хорошо, но по какой-то причинечасть успеха не запускается, вот мой код:

$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DrWlHtvZHbZ8%26feature%3Dplayer_embedded%22%20and%0A%20%20%20%20%20%20xpath%3D'%2Fhtml%2Fbody%2Fdiv%2Fdiv%5B3%5D%2Fdiv%2Fdiv%2Fdiv%5B3%5D%2Fdiv%2Fdiv%2Fdiv%5B2%5D%2Fdiv%2Fspan%2Fstrong'&format=json&diagnostics=true&callback=cbfunc",
    function(data) {
        alert('Hello');
    }
);

Я вижу на консоли моего firebug, что запрос выполнен, и он возвращает правильный объект json, но предупреждение в моей функции не запускается,что я тут не так делаю?

Заранее спасибо!

Ответы [ 3 ]

4 голосов
1 голос
/ 10 июня 2011

Использование анонимных обратных вызовов jQuery считается плохой практикой, см. Остерегайтесь клиентских библиотек, «помогающих» вам в блоге YQL.

Поскольку ваш исходный URL YQL велел YQL ожидать функцию обратного вызова с именем cbfunc, все, что вам нужно сделать, это определить эту функцию в вашем JavaScript (в области действия window).

function cbfunc(data) {
    alert('Hello');
}
0 голосов
/ 09 июня 2011

Я ничего не знаю о YQL, но я вижу явный обратный вызов, установленный в конце этой строки запроса, что может быть проблемой.Вы пытались удалить callback = cbfunc или поставить callback =?как в документации JSONP на http://api.jquery.com/jQuery.getJSON/

...