Frage

Im Versuch den Rückruf von diesem zu erhalten:

$.getScript( 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script', function(data)
{
  alert(data);
});

Aber die Warnung gibt nur Warnung vor „undefined“? Und ich auch versucht:

$.getScript( 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script&callback=?', function(data)
{
  alert(data);
});

Dann zurückgibt es keine Benachrichtigung überhaupt. (Ich glaube die Funktion doesnt run).

Aber .... wenn ich tun:

$.getScript( 'http://gdata.youtube.com/feeds/api/videos/<?php echo $m; ?>?v=2&alt=json-in-script&callback=myfunction');

und dann hat:

function myfunction ( data ) { alert(data); }

Dann tun Sie es Arbeit und gibt die Daten, wie ich wollte. Aber ich möchte nicht, dies zu tun.

Wie kann dieses Problem gelöst werden?

versucht, dies zu:

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

aber wo in dieser sollte ich eine Funktion haben, und die Daten aus dem Rückruf alarmieren?

War es hilfreich?

Lösung

Die getScript Methode wird verwendet, um das zurück Skript auszuführen. Durch die Zeit, um es zu Ihrer Callback macht, hat das Skript bereits ausgeführt wurde. Wenn Sie tatsächlich zurückgegebenen Daten sind, sagen JSON, sollten Sie getJSON werden mit Ihrem Kreuz machen Domäne beantragt, mit einem Datentyp von jsonp. Wenn Sie wirklich ein Skript bekommen, dass läuft auf Ihrer Seite, sollten Sie nicht wirklich benötigen die Callback-Funktion.

von dem docs Zitiert:

  

Der Rückruf wird die zurückgegebene JavaScript-Datei übergeben. Dies ist in der Regel nicht sinnvoll, da das Skript wird bereits an dieser Stelle ausgeführt werden.

getJSON Mit ihm könnte wie (Anmerkung ich die Zeichenfolge aufgeteilt, um es besser lesbar) aussehen

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);
});

Andere Tipps

eine JSONP Anfrage in jQuery zu tun, das ist, glaube ich, was Sie zu tun versuchen, gehen Sie wie folgt vor:

$.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);
    }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top