Tengo un very simple test page que usa solicitudes XHR con los métodos $ .getJSON y $ .ajax de jQuery. La misma página funciona en algunas situaciones y no en otras. Específicamente, no funciona en Chrome en Ubuntu.Problemas con jQuery getJSON usando archivos locales en Chrome
Estoy probando en Ubuntu 9.10 con Chrome 5.0.342.7 beta y Mac OSX 10.6.2 con Chrome 5.0.307.9 beta.
- Funciona correctamente cuando los archivos están instalados en un servidor web desde Ubuntu/Chrome y Mac/Chrome (try it out here).
- Funciona correctamente cuando los archivos están instalados en el disco duro local en Mac/Chrome (se accede con el archivo: /// ...).
- Es FAILS cuando los archivos están instalados en el disco duro local en Ubuntu/Chrome (acceso con el archivo: /// ...).
El pequeño conjunto de 3 archivos se pueden descargar en un archivo tar/gzip desde aquí: http://issues.tauren.com/testjson/testjson.tgz
Cuando funciona, la consola de Chrome dirán:
XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:16Using getJSON
index.html:21
Object
result: "success"
__proto__: Object
index.html:22success
XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:29Using ajax with json dataType
index.html:34
Object
result: "success"
__proto__: Object
index.html:35success
XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:46Using ajax with text dataType
index.html:51{"result":"success"}
index.html:52undefined
Cuando doesn no funciona, la consola de Chrome mostrará esto:
index.html:16Using getJSON
index.html:21null
index.html:22Uncaught TypeError: Cannot read property 'result' of null
index.html:29Using ajax with json dataType
index.html:34null
index.html:35Uncaught TypeError: Cannot read property 'result' of null
index.html:46Using ajax with text dataType
index.html:51
index.html:52undefined
Observe que ni siquiera muestra el Solicitudes XHR, aunque se ejecuta el controlador de éxito. Juro que esto estaba funcionando previamente en Ubuntu/Chrome, y estoy preocupado de que algo se haya estropeado. Ya desinstalé y reinstalé Chrome, pero eso no ayudó.
¿Alguien puede probarlo localmente en su sistema Ubuntu y decirme si tiene algún problema? Tenga en cuenta que parece estar funcionando bien en Firefox.
Supongo que Chrome aplica indebidamente la política de origen idéntico y no emite solicitudes pensando que es un dominio diferente. Intente iniciar Chrome a través de la línea de comando usando '--disable-web-security' y vea si funciona? –
@Nick: gracias, voy a intentarlo para ver si me ayuda. – Tauren
Me encontré con la misma situación, y '--disable-web-security' funcionó, ¡gracias! –