Domanda

Sto cercando di avviare una richiesta di alcuni dati da un sito Web esterno con un'API.

Se copio e incollo la richiesta nel mio browser web, funziona bene. Esempio come (http://example.com/json/user/search/all) Posso vedere i risultati nella finestra del browser.

Tuttavia, sto provando ad avviare questa query da un sito web e riscontro un problema: Utilizzando alcuni javascript come questo: var req= new XMLHttpRequest (); req.open ('GET', abovementionedurl, true) req.send ()

Ricevo un errore che dice: Origin (MyDOMAIN) non è consentito dal controllo degli accessi Consenti Origin.

Ancora una volta, sono abbastanza nuovo per XMLHttpRequests e penso che sia abbastanza semplice da risolvere. Qualcuno sa?(Ho provato a cercare su Google ma non sono riuscito a trovare una buona risposta) Grazie in anticipo.

È stato utile?

Soluzione

Non sei autorizzato a eseguire XMLHttpRequest intersito e devi utilizzare unproxy per realizzarlo.

Questo articolo di Yahoo lo spiega in dettaglio e fornisce ulteriori idee su comeper risolverlo.Ma fondamentalmente non dovrebbe essere fatto perché questa restrizione esiste per motivi di sicurezza.

Sarebbe meglio se usassi PHP e fopen() per esempio e chiamassi semplicemente quella pagina usando il tuo oggetto XMLHttpRequest.

Altri suggerimenti

Il problema è la norma della stessa origine .Questa è una regola per cui XMLHTTPRequests può non essere utilizzato tranne che nello stesso dominio della pagina originale.Questo è per motivi di sicurezza.

Il modo più semplice per aggirare il problema è scrivere uno script lato server che inoltri la richiesta per te.

Questa è la protezione del tuo browser contro il cross-side scripting.Non sei autorizzato ad accedere ad altre pagine che provengono da un dominio diverso.

MODIFICA: controlla anche questo: XMLHttpRequest cross-site

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