1

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

$.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'
        });

しかし、これのどこに関数があり、コールバックからのデータを警告する必要がありますか?

4

2 に答える 2

3

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);
});
于 2010-11-10T12:11:49.523 に答える
0

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);
    }
});
于 2010-11-10T12:23:48.120 に答える