Domanda

Se stai costruendo un AJA~Xy app, ci sono degli svantaggi nell'usarla JSONP richieste/risposte anche se non ne hai pianificate cross-domain richieste?

L'unica cosa che mi viene in mente è che ci sono un paio di byte in più per il wrapper di callback...

Modificare:

ho trovato Questo che suggerisce anche security and error handling come potenziali problemi...

Non c'è gestione degli errori.IL script injection o funziona, oppure no.Se c'è un errore da parte di injection, colpirà la pagina e, a meno di un gestore di errori a livello di finestra (cattivo, cattivo, molto cattivo), devi essere sicuro che il valore restituito sia valido sul server side.

Non penso error handling è un bel problema...la maggior parte di noi utilizzerebbe una libreria per generare il file JSON...la buona formulazione della mia risposta non è una preoccupazione per questa domanda.

e sicurezza:

Ci sono documenti sul Web che possono aiutare, ma come controllo superficiale, controllerei il referrer nel file server side sceneggiatura.

sembra che questo sia un potenziale problema con qualsiasi tipo di risposta...certamente, non c'è nulla di unico in JSONP nell'arena della sicurezza...?

È stato utile?

Soluzione

Svantaggio?È abbastanza limitato: attivi una richiesta "GET" e ricevi alcuni script eseguiti.Non ottieni la gestione degli errori se il tuo server genera un errore, quindi devi racchiudere anche tutti gli errori in JSON.Non puoi davvero annullare o riprovare la richiesta.Sei in balia delle varie opinioni degli autori del browser sul comportamento "corretto" per i file generati dinamicamente <script> tag.Il debug è un po' più difficile.

Detto questo, l'ho usato occasionalmente e non ho sofferto.YMMV.

Altri suggerimenti

È possibile recuperare gli errori quando una chiamata jsonp fallisce.

http://code.google.com/p/jquery-jsonp/

Spero che sia d'aiuto.

Direi che la limitazione più grande potrebbe essere il sovraccarico aggiuntivo per fare in modo che il browser esegua il rendering di un tag di script per chiamare il server.Inoltre JSONP è davvero considerato AJAX poiché in realtà non utilizza l'oggetto XMLHttpRequest?

Ecco un altro aspetto che potresti prendere in considerazione con JSONP.possibili perdite di memoria..

http://neil.fraser.name/news/2009/07/27/

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