Prima di tutto, è importante capire che per far funzionare JSONP, il server deve sapere che verrà contattato con una richiesta JSONP. In altre parole, non puoi semplicemente fare una richiesta ad un server casuale e aspettarti che funzioni se il server non è stato preparato correttamente.
Se si conosce un server con un URL progettato per accettare e rispondere alle richieste JSONP, ciò che verrà restituito sarà un'espressione JSON racchiusa in una chiamata a una funzione. La tua pagina includerà quella funzione, e quindi quando i risultati torneranno dal server il browser interpreterà l'espressione JSON e quindi invocherà la funzione.
Quindi, se si vuole fare un servizio che restituisce un bel blocco di testo, si richiama il servizio come questo:
$.getJSON("http://www.domain.com/external/text.aspx?callback=", function(data) {
$('#targetDiv').text(data.text);
});
Il codice jQuery sarà preparare tutto in modo tale che il server sarà detto (tramite un parametro chiamato "jsonp" nella richiesta HTTP) il nome della funzione da chiamare (e jQuery stesso costruirà quella funzione per te). Il server dovrebbe rispondere con qualcosa del genere:
jqueryFunctionName({text: "This is a nice block of text."})
Grazie mille per dare un esempio semplice. Con la presente ti consiglierò come miglior candidato per il premio Nobel della pedagogia. Puoi anche regalarti un cupcake ... o qualcosa del genere. Una cosa, solo per essere al sicuro: Ho inserito il codice tra i tag appena sotto il codice div HTML. Inoltre ho un collegamento nel tag su jquery-1.4.2.min.js. È giusto? Se è così, non ha funzionato e ciò significa che il server non è configurato per JSONP. Destra? Qui forse spingo il limite, ma puoi anche dare un esempio su come recuperare il testo attraverso un proxy? Lo apprezzo davvero. –
Nano
Sì sì - mi dispiace, non stavo cercando di fornire una pagina completa piena di codice. Sì, la tua chiamata a jQuery per recuperare la roba JSON sarebbe all'interno di un tag script e probabilmente all'interno di una sorta di gestore per un evento, forse una risposta a un "clic" o qualcosa del genere. Per quanto riguarda i proxy - supponendo si intenda un proxy HTTP - beh, non dovrebbe esserci nulla di speciale; se riesci ad accedere al server dal browser per un normale URL, non dovresti avere problemi. Non c'è niente di "strano" nella richiesta HTTP per il contenuto JSON. – Pointy
Devo creare il file JSON? – Nano