Question

Im essayant d'obtenir le rappel de ceci:

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

Mais l'alerte retourne juste alerte avec « non défini »? Et moi aussi essayé:

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

Ensuite, il ne retourne aucune alerte à tout. (Je crois que la fonction ne marche pas exécuter).

Mais .... si je fais:

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

et alors:

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

Ensuite, faire le travail et renvoie les données que je voulais. Mais je ne veux pas le faire.

Comment cela peut-il être résolu?

essayé cela aussi:

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

mais où dans ce que je devrais avoir une fonction et alerter les données du rappel?

Était-ce utile?

La solution

La méthode getScript est utilisé pour exécuter le script retourné. Au moment où il est à votre rappel, le script a déjà été exécuté. Si vous êtes en train de renvoyer des données, dites JSON, vous devriez utiliser getJSON pour rendre votre cross demande domaine, avec un type de jsonp. Si vous êtes vraiment obtenir un script qui fonctionne sur votre page, vous ne devriez pas réellement besoin de la fonction de rappel.

Je cite les docs:

  

Le rappel est transmis le fichier JavaScript retourné. Ceci est généralement pas utile que le script aura déjà fonctionner à ce stade.

En utilisant getJSON il pourrait ressembler (note je partage la chaîne pour le rendre plus lisible)

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

Autres conseils

Pour faire une demande JSONP dans jQuery, qui est, je pense, ce que vous essayez de faire, procédez comme suit:

$.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);
    }
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top