Domanda

Nel tentativo di ottenere il callback da questo:

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

Ma l'avviso appena ritorna avviso con "undefined"? E ho anche provato:

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

Quindi non restituisce alcun avviso a tutti. (Credo che la corsa funzione di doesnt).

Ma .... se faccio:

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

e poi:

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

Poi fare un lavoro e restituisce i dati come avrei voluto. Ma io non voglio fare questo.

Come può essere risolto?

provato anche questo:

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

ma dove in questo Dovrei avere una funzione e allertare i dati dal callback?

È stato utile?

Soluzione

Il metodo getScript è usato per eseguire lo script restituito. Con il tempo lo rende al vostro callback, sarà già stato eseguito lo script. Se si sta in realtà la restituzione dei dati, diciamo JSON, si dovrebbe utilizzare getJSON per rendere il vostro cross- dominio richiesta, con un tipo di dati di jsonp. Se davvero trovato uno script che viene eseguito sulla tua pagina, non si dovrebbe effettivamente bisogno la funzione di callback.

Citando dalla documentazione:

  

Al callback sono passati il ??file JavaScript restituito. Questo non è generalmente utile come lo script avrà già eseguito a questo punto.

Utilizzando getJSON potrebbe assomigliare (nota ho diviso la stringa per renderlo più leggibile)

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

Altri suggerimenti

Per fare una richiesta JSONP in jQuery, che è, credo, ciò che si sta cercando di fare, effettuare le seguenti operazioni:

$.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);
    }
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top