Domanda

Il $.getJSON() stati di documentazione:

  

Se l'URL specificato si trova su un server remoto, la richiesta viene trattata come JSONP invece. Vedere la discussione del tipo di dati jsonp a $ .ajax () per maggiori dettagli.

Il $.ajax() documentazione per i tipi di dati jsonp stati (sottolineatura mia):

  

I carichi in un blocco JSON utilizzando JSONP. aggiungerà un extra "? Callback =?" alla fine dell'URL per specificare il callback .

Così sembra che se chiamo $.getJSON() con un URL tra domini, il "callback =?" Extra parametro dovrebbe ottenere automaticamente aggiunto. (Altre parti del supporto documentazione di questa interpretazione.)

Comunque, io non sto vedendo che il comportamento. Se non aggiungo il "callback =?" esplicitamente, jQuery fa in modo non corretto un XMLHttpRequest (che restituisce i dati nulli poiché non riesco a leggere la risposta cross-domain). Se lo faccio aggiungere esplicitamente, jQuery rende correttamente un

Altri suggerimenti

Prova questo:

var URL = "http://www.geonames.org/postalCodeLookupJSON" +
    "?postalcode=10504&country=US";
function alertResponse(data, status) {
    alert("data: " + data + ", status: " + status);
}
$.ajax({
    url: URL,
    dataType: 'jsonp',
    jsonpCallback: 'alertResponse',
});

Sì, penso che tu frainteso. $.getJSON è una scorciatoia per $.ajax({datatype: 'json'.... la documentazione dice. E non fa mai una chiamata JSONP a meno che non si aggiunge il parametro callback=?.

Sto usando il codice qui sotto,

$. Ajax ({     URL: URL,     dataType: 'jsonp',     successo: la funzione (i dati)     {      // fare qualcosa     }     di errore: la funzione (jqXHR, textStatus, errorThrown) {},     jsonpCallback: 'login_callback', });

Ma, richiamata a volte viene aggiunto alla fine dell'URL ea volte non in IE. Mentre il suo bene in Chrome e FF di lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top