Estoy tratando de recuperar una respuesta XML utilizando ajax llamadas a la API REST eXist DB (1).XMLHttpRequest no se puede cargar http: // localhost: 8080/exist/rest/db/.... Origen nulo no permitido por Access-Control-Allow-Origin
Google Chrome me proporciona el siguiente error de consola:
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
Mientras Firebug en Firefox proporciona el error siguiente consola:
GET http://localhost:8080/exist/rest/db/movies?_query=%2Fmovies 200 OK X 35ms jquery.min.js(line 18)
Aquí es la parte de Ajax del código:
$.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);
}
});
He leído algunos problemas relacionados en este mismo problema, pero no he encontrado ninguna suerte con la solución que probé.
El index.html que contiene el segmento de código Ajax anterior se accede desde mi máquina local como sigue:
file:///.../index.html
me han tratado la ejecución de cromo de la siguiente manera:
chrome.exe --allow-file-access-from-files
Además, he intentado para implementar el archivo en un host en línea para que esté ubicado en
http://www.<somedomain>.com/index.html
El más cercano La solución que tuve fue cambiar el tipo de datos de xml a jsonp. El Reponse se recibió, pero ya que se espera que sea xml, el error se relacionó con el análisis sintáctico, creo, con la siguiente afirmación devuelto por la consola de Google Chrome:
Uncaught SyntaxError: Unexpected token <
y la consola de Firebug:
XML can't be the whole program
[Break On This Error]
</exist:result>
movies...3302057 (line 528, col 15)
Volviendo a mi pregunta, ¿cómo puedo recuperar correctamente el documento xml a través de eXist DB? ¿Qué estoy haciendo mal?
Esperamos su ayuda. Soy bastante nuevo en el desarrollo web y me estoy quedando sin ideas.
¡Gracias de antemano!
Otras notas:
Los jquery.min.js que estoy usando se encuentra en http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
Los URI http://localhost:8080/exist/rest/db/movies?_query=%2Fmovies
obras, cuando introducido directamente en cualquier navegador.
Referencia:
(1) - http://www.exist-db.org/exist/devguide_rest.xml;jsessionid=e7096vtg4l7gmocouhe6zhle
Actualizaciones (1) Parece que yo era capaz de deshacerse del problema CORS ejecutando DB existo como un servidor de la siguiente manera: bin/server.sh (en UNIX) o bin \ server.bat (en Windows).
Ahora, me encuentro con otro tipo de problema. Me sale el siguiente error en la consola de Google Chrome utilizando 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
y utilizando 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
¿Qué significa el error? ¿Qué parte de mi código estoy haciendo incorrectamente?
(2) Actualización 1, al parecer, es un problema innecesario al que me enfrenté. El modo de servidor no funcionaba con mi máquina, por eso aparecieron los errores anteriores.
posible duplicado de [XmlHttpRequest error: Origen nulo no está permitido por Access-Control-Allow-Origin] (http://stackoverflow.com/questions/3595515/xmlhttprequest-error-origin-null-is-not-allowed -by-access-control-allow-origin) – jrummell