Ho bisogno di fare una richiesta sincrona all'API last.fm, ma quando uso GET e json insieme, la richiesta diventa asincrona.richiesta jQuery JSON sincrona
il mio codice:
$.ajax({
async: false,
dataType: "json",
url: "http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist="+artist+"&api_key="+apiKey+"&format=json&callback=?",
success: function(html){
imgURL = html.images.image[1].sizes.size[0]["#text"];
}
});
Se rimuovo dataType: "json" o l'uso post, è sincrono di nuovo, ma io sono dipendente da utilizzando sia JSON e GET.
Qualche idea?
hmmm, credo che dovrò trovare un altro modo poi ... grazie per la risposta comunque. –
Potrebbe riportare la stringa JSON come testo e analizzare la stringa JSON su un oggetto stesso nella sua funzione success() utilizzando json2.js da www.json.org? –
@Lunchy Non senza qualcosa da gestire reindirizzare la richiesta dalla sua parte. L'unico modo per ottenere dati da un altro dominio è utilizzare il tag script e una funzione di callback. Sembra che il servizio sia orientato esattamente a ciò specificando la funzione di callback come URL. Puoi simulare il blocco, ma usando solo Javascript 1.7. http://hyperstruct.net/2008/5/17/synchronous-invocation-in-javascript-part-1-problem-and-basic-solution http://www.neilmix.com/2007/02/07/threading -in-javascript-17 / – cgp