Question

Je suis en train de prendre un peu JSON de service iTunes d'Apple JSON. La demande est simple: http: // hache. phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch?term=jac&limit=25

Si vous visitez l'URL dans votre navigateur, vous verrez quelques-uns bien formé (soutenu par jsonlint.com) JSON. Lorsque j'utilise le jQuery suivant pour en faire la demande, toutefois, la demande ne trouve rien:

        $("#soundtrack").keypress(function(){
            $.getJSON("http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch",{'term':$(this).val(), 'limit':'25'}, function(j){              
                var options = '';
                for (var i = 0; i < j.results.length; i++) {
                    options += '<option value="' + j.results[i].trackId + '">' + j.results[i].artistName + ' - ' + j.results[i].trackName + '</option>';
                }
                $("#track_id").html(options);
            });
        });

Firebug voit la demande, mais ne reçoit qu'une réponse vide.

Toute aide serait appréciée ici, comme je suis à mon whits fin essayer de le résoudre. Vous pouvez voir ici le script: http://rnmtest.co.uk/gd/drives_admin/add_drive (entrée de bande boîte se trouve au bas de la page).

Merci

Était-ce utile?

La solution

Pour faire des demandes inter-domaines, vous allez avoir besoin d'utiliser JSONP. Cela peut aider à:

$.ajax({
  url: "http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch",
  dataType: 'jsonp',
  data: {'term':$(this).val(), 'limit':'25'}, 
  success: function(j){              
    var options = '';
    for (var i = 0; i < j.results.length; i++) {
      options += '<option value="' + j.results[i].trackId + '">' + j.results[i].artistName + ' - ' + j.results[i].trackName + '</option>';
    }
    $("#track_id").html(options);
  }
});

Autres conseils

Ou vous changez simplement l'url un peu. De

http://ax.phobos.apple.com.edgesuite.net/.../wa/wsSearch"

à

http://ax.phobos.apple.com.edgesuite.net/.../wa/wsSearch?callback=?"

et continuer à utiliser $.getJSON au lieu de passer à $.ajax

De la jQuery.getJSON documentation

  

Si l'URL comprend la chaîne   "callback=?" dans l'URL, la demande   est traité comme JSONP à la place.

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