jQuery getscript()回调函数?
-
30-09-2019 - |
题
我试图从中获得回调:
$.getScript( 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script', function(data)
{
alert(data);
});
但是警报只是以“未定义”返回警报吗?我也尝试了:
$.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'
});
但是,我应该在哪里具有功能并提醒回调中的数据?
解决方案
这 getScript 方法用于执行返回的脚本。到您回到回调的时候,脚本已经运行。如果您实际返回数据,请说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);
});
其他提示
在JQuery中执行JSONP请求,我认为您要做什么,请执行以下操作:
$.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);
}
});
不隶属于 StackOverflow