Sul lato server, tutto ciò che dovete installare è una risorsa web (ad esempio, pagina) che accetta una richiesta di GET
e restituisce i dati utilizzando la convenzione JSON-P, che è:
callback({"data": "here"});
... dove il nome della funzione ("callback" in quell'esempio) viene solitamente preso da uno dei parametri della stringa di query (per convenzione, il parametro "callback"), e il dato è JSON text (anche se tecnicamente potrebbe essere tutto ciò che è valido in un oggetto JavaScript letterale, la convenzione con JSON-P è di limitarsi a ciò che è valido in JSON). Così, per esempio, diciamo che la richiesta si presentava così:
http://example.com/foo.php?callback=bar
che chiama la pagina foo.php
(non deve essere PHP, può essere qualsiasi sistema lato server dinamico), dicendogli che la la funzione che vogliamo chiamare è "bar". La nostra risposta sarebbe:
bar({"data": "here"});
Sul lato client, è necessario aggiungere un elemento di script
alla pagina in modo dinamico, e anche aggiungere la funzione di callback che andranno innescata dalla risposta JSON-P. Di solito vuoi assegnare a quella funzione un nome casuale e rimuoverlo quando hai finito.
Here's a complete example come risposta a un'altra domanda qui su Stack Overflow. Potrebbe essere necessario adattarlo leggermente per l'utilizzo in un componente aggiuntivo di Firefox, ma i concetti sono gli stessi.
fonte
2012-03-01 15:48:57
Grazie mille! La soluzione CORS mi ha risolto. –
Appena downcoted bc questa risposta presuppone php, e quindi preferisco T.J. La risposta di Crowder sotto. – Steven2163712
@ Steven2163712 se si legge oltre il titolo, il problema OP è in realtà CORS, indipendentemente dalla lingua. Mentre la risposta di TJ è più generica (il php IMO è abbastanza generico), non risolve il problema degli OP. – soemarko