質問

私はこれからコールバックを取得しようとしています:

$.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);
    }
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top