Callback en cours d'exécution, bien que la demande fonctionne très bien avec jQuery getJSON

StackOverflow https://stackoverflow.com/questions/1567108

  •  21-09-2019
  •  | 
  •  

Question

Je suis en train de obtenir un liste des actifs (via JSON) à l'intérieur d'une goutte à l'aide d'un libre drop.io compte.

Notez que je l'ai déjà regardé les deux autres questions ( et href="https://stackoverflow.com/questions/572991/jquery-getjson-doesnt-trigger-callback"> question2 ) sur ce point et aucun d'eux fourni une solution.

    var dropName = escape("greganddonny");
            var apiKey = "some key I'm not displaying it here...";
            var version = "2.0";

    var assetsListBaseURL = "http://api.drop.io/drops/greganddonny/assets.json?api_key=" + apiKey + "&version=" + version;

    var resultingdata = null;

    function getFileList() {
        console.log("BEGIN: getFileList()");
        var surl = assetsListBaseURL + '&callback=?';

        $.getJSON(surl, function(data, textStatus) {
            console.log("textStatus:" + textStatus);
            console.log("BEGIN: Callback()");
            resultingdata = data;
            showResult();
            console.log("END: Callback()"); 
    });

        console.log("END: getFileList()");
    }

    function showResult()
    {
        alert(resultingdata);
    }

    $(document).ready(function() {
        console.log("BEGIN: document.ready");
            $.ajaxSetup({
            "error": function(XMLHttpRequest,textStatus, errorThrown) {   
              alert(textStatus);
              alert(errorThrown);
              alert(XMLHttpRequest.responseText);
              }
            })

            $("#search").click(function() {getFileList();});
        console.log("END: document.ready");
    });

Lorsque le bouton de recherche sur la page est cliqué ce qui déclenche la fonction GetFileList (). Selon ma console Firebug la fonction GetFileList () est appelée très bien.

La demande JSON est également avec succès comme onglet Net de la console Firebug affiche un état 200OK quand je l'appelle assets.json sur le site de drop.io. Je reçois aussi le JSON de retour suivant dans la liste des demandes dans l'onglet « Net »:

    [{"converted":"http:\/\/drop.io\/download\/public\/x0yfnmzdtet1vtxesqcm\/12a9ebc74c9a3e4e3b2e2b4ea3546b919a2519ff\/df43d2b0-926f-012c-26c2-fbe072d62af6\/2a0a5270-9270-012c-8fc9-fbfd417303a8\/v2\/content","type":"audio","status":"converted","title":"MikeAndAndyOnPhone2009.MP3","duration":118,"artist":"Unknown","created_at":"2009/10/03 17:29:02 +0000","filesize":1895424,"description":null,"track_title":"Unknown","hidden_url":"http:\/\/drop.io\/hidden\/sazpcf7522exzb\/asset\/bWlrZWFuZGFuZHlvbnBob25lMjAwOS1tcDM=","name":"mikeandandyonphone2009-mp3"}]

Je validais le bloc ci-dessus JSON retourné en utilisant JSONLint et il signale que le JSON retourné est en effet valide , vous pouvez tester ceci en copiant et collant le bloc ci-dessus.

J'ai tout essayé je sais comment essayer, je l'ai même ajouté une option « d'erreur » à la méthode .ajaxSetup $ et je l'ai toujours pas eu de succès, même retour un message d'erreur pour laquelle ma fonction de rappel n'est pas appelé.

Toute idée pourquoi cela pourrait être? Vous pouvez tester mon script

Était-ce utile?

La solution

JSONP exige que le serveur en charge les demandes JSONP. Toutefois, si vous visitez

http://api.drop.io/drops/greganddonny/assets.json?api_key=API_KEY_HERE&version=2.0&callback=x

le document retourné ressemble [{"converted..) bien qu'il devrait ressembler à x([{"converted"..) en raison du rappel x.

Apparemment drop.io ne supporte pas JSONP (la documentation ne dit pas non plus). La seule option qui reste pour vous est l'approche classique js inter-domaines: utiliser un proxy .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top