jquery genscript () Функция обратного вызова?
-
30-09-2019 - |
Вопрос
Я пытаюсь получить обратный вызов от этого:
$.getScript( 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script', function(data)
{
alert(data);
});
Но предупреждение просто возвращает предупреждение с «undefined»? И я также пробовал:
$.getScript( 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script&callback=?', function(data)
{
alert(data);
});
Тогда это не возвращает никакого оповещения вообще. (Я считаю, что функция не работает).
Но .... если я сделаю:
$.getScript( 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script&callback=myfunction');
а потом есть:
function myfunction ( data ) { alert(data); }
Тогда это работает и возвращает данные, как я хотел. Но я не хочу этого делать.
Как это может быть решено?
Пробовал это тоже:
var URL = 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script';
$.ajax({
url: URL,
dataType: 'jsonp',
jsonpCallback: 'youtubeFetchDataCallback'
});
Но где в этом случае у меня есть функция и предупреждение о данных обратного вызова?
Решение
То stackcript. Метод используется для выполнения возвращенного скрипта. К тому времени, когда он входит в ваш обратный вызов, сценарий уже будет запущен. Если вы на самом деле возвращаете данные, скажите JSON, вы должны использовать Getjson. Чтобы сделать ваш перекрестный запрос, с типом данных jsonp
. Отказ Если вы действительно получите скрипт, который запускается на вашей странице, вам на самом деле не нужно функцию обратного вызова.
Цитата из документов:
Обратный вызов передан возвращенный файл JavaScript. Это, как правило, не полезно, так как скрипт уже будет работать в этой точке.
С использованием getJSON
Это может выглядеть (обратите внимание, я разбиваю строку, чтобы сделать его более читаемым)
var url = 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>';
$.getJSON( url + '?v=2&alt=json-in-script&callback=?',
function(data) {
alert(data);
});
Другие советы
Чтобы сделать запрос JSONP в jQuery, который есть, я думаю, что вы пытаетесь сделать, сделайте следующее:
$.ajax({
url: 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script',
type: 'GET',
dataType: 'jsonp',
success: function(data) {
alert(data);
}
});