Pregunta

Im tratando de obtener la devolución de llamada de esto:

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

Sin embargo, la alerta sólo devuelve alerta con "indefinido"? Y también probé:

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

A continuación, no devuelve ninguna notificación en absoluto. (Creo que la carrera función duerma).

Pero .... si lo hago:

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

y luego tener:

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

A continuación, se hace el trabajo y devuelve los datos como quería. Pero no quiero hacer esto.

¿Cómo puede ser resuelto?

intentado esto también:

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

pero donde en este debo tener una función y alertar a los datos de la devolución de llamada?

¿Fue útil?

Solución

El método getScript se utiliza para ejecutar la secuencia de comandos de regresar. En el momento en que lo hace a su devolución de llamada, ya habrá sido ejecutar el script. Si en realidad se está enviando datos, por ejemplo JSON, usted debe utilizar getJSON para hacer su cruzada solicitud de dominio, con un tipo de datos de jsonp. Si realmente está recibiendo una secuencia de comandos que se ejecuta en su página, no deberían necesitar realmente la función de devolución de llamada.

Citando de los documentos:

  

La devolución de llamada se pasa el archivo JavaScript devuelto. Esto no es generalmente útil como el guión ya ha ejecutado en este punto.

El uso de getJSON puede ser que parezca (nota que dividir la cadena para que sea más legible)

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

Otros consejos

Para hacer una solicitud JSONP en jQuery, que es, creo, lo que está tratando de hacer, hacer lo siguiente:

$.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);
    }
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top