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は言った、あなたは使用する必要があります ゲットソン のデータ型を使用して、クロスドメインリクエストを行うには 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