Sto tentando di recuperare una risposta XML utilizzando chiamate ajax a l'API eXist DB REST (1).XMLHttpRequest non può caricare http: // localhost: 8080/exist/rest/db/.... Origine null non consentita da Access-Control-Allow-Origin
Google Chrome mi fornisce il seguente errore console:
XMLHttpRequest cannot load XMLHttpRequest cannot load http://localhost:8080/exist/rest/db/movies?_query=%2Fmovies. Origin null is not allowed by Access-Control-Allow-Origin Origin null is not allowed by Access-Control-Allow-Origin
Mentre Firebug in Firefox fornisce il seguente errore di console:
GET http://localhost:8080/exist/rest/db/movies?_query=%2Fmovies 200 OK X 35ms jquery.min.js(line 18)
Ecco la parte ajax del codice:
$.ajax({
type: 'GET',
dataType: 'xml',
url: 'http://localhost:8080/exist/rest/db/movies',
data: {
_query: _query_value,
_key: _key_value,
_indent: _indent_value,
_encoding: _encoding_value,
_howmany: _howmany_value,
_start: _start_value,
_wrap: _wrap_value,
_source: _source_value,
_cache: _cache_value
},
success: function(resp){
alert("Resp OK!");
console.log(resp);
},
error: function(hqXHR, textStatus, errorThrown){
var x=0;
alert("fail0 " + hqXHR + " " + textStatus + " " + errorThrown);
}
});
Ho letto alcuni problemi correlati su questo stesso problema, ma non ho trovato nessuna fortuna con nessuna delle soluzioni che ho provato.
L'index.html che contiene il segmento di codice Ajax sopra si accede dalla mia macchina locale come segue:
file:///.../index.html
ho cercato di eseguire Chrome come segue:
chrome.exe --allow-file-access-from-files
Inoltre, ho provato per distribuire il file a un host online in modo che si trovi a
http://www.<somedomain>.com/index.html
Il più vicino la soluzione che avevo era di cambiare il dataType del da xml a jsonp. La reponse è stata ricevuta, ma dal momento che è prevista per xml, l'errore divenne legata alla analisi, credo che, con la seguente affermazione restituito dalla console di Google Chrome:
Uncaught SyntaxError: Unexpected token <
e console Firebug:
XML can't be the whole program
[Break On This Error]
</exist:result>
movies...3302057 (line 528, col 15)
Tornando alla mia domanda, come posso recuperare correttamente il documento xml tramite DB eXist? Che cosa sto facendo di sbagliato?
In attesa di vostro aiuto. Sono abbastanza nuovo allo sviluppo del web e sto esaurendo le idee.
Grazie in anticipo!
Altre note:
Le jquery.min.js che sto usando si trova a http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
l'URI http://localhost:8080/exist/rest/db/movies?_query=%2Fmovies
opere quando digitato direttamente in qualsiasi browser.
Riferimento:
(1) - http://www.exist-db.org/exist/devguide_rest.xml;jsessionid=e7096vtg4l7gmocouhe6zhle
Aggiornamenti (1) Sembra che ero in grado di sbarazzarsi del problema CORS da corsa esistono DB come server come segue: bin/server.sh (in UNIX) o bin \ server.bat (in Windows).
Ora, sto incontrando un altro tipo di problema, però. Ottengo il seguente errore nella console di Google Chrome utilizzando jquery.js:
GET http://localhost:8080/exist/rest/db/movies?_query=%2Fmovies jquery.js:8240
jQuery.ajaxTransport.send jquery.js:8240
jQuery.extend.ajax jquery.js:7719
(anonymous function) index.html:43
jQuery.event.dispatch jquery.js:3332
jQuery.event.add.elemData.handle.eventHandle jquery.js:2941
e utilizzando jquery.min.js:
GET http://localhost:8080/exist/rest/db/movies?_query=%2Fmovies jquery.min.js:18
f.support.ajax.f.ajaxTransport.send jquery.min.js:18
f.extend.ajax jquery.min.js:18
(anonymous function) index.html:43
f.event.handle jquery.min.js:17
f.event.add.i.handle.k jquery.min.js:16
Che cosa significa l'errore? Quale parte del mio codice sto facendo erroneamente?
(2) L'aggiornamento 1, a quanto pare, è un problema non necessario che ho dovuto affrontare. La modalità server non funzionava con la mia macchina e questo è il motivo per cui si sono presentati gli errori sopra riportati.
possibile duplicato di [XmlHttpRequest errore: Origine null non consentito da Access-Control-Allow-Origin] (http://stackoverflow.com/questions/3595515/xmlhttprequest-error-origin-null-is-not-allowed -by-access-control-allow-origin) – jrummell