Problemas con jQuery getJSON usando archivos locales en Chrome
Tengo una página de prueba muy simple. que usa solicitudes XHR con los métodos $.getJSON y $.ajax de jQuery. La misma página funciona en algunas situaciones y en otras no. Específicamente, no funciona en Chrome en Ubuntu.
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 tanto desde Ubuntu/Chrome como desde Mac/Chrome ( pruébelo aquí ).
- Funciona correctamente cuando los archivos están instalados en el disco duro local en Mac/Chrome (al que se accede con file:///...).
- FALLA cuando los archivos se instalan en el disco duro local en Ubuntu/Chrome (acceda con file:///...).
El pequeño conjunto de 3 archivos se puede descargar en un archivo tar/gzip desde aquí: http://issues.tauren.com/testjson/testjson.tgz
Cuando funcione, la consola de Chrome dirá:
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 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 las solicitudes XHR, aunque se ejecuta el controlador de éxito. Juro que esto funcionaba anteriormente en Ubuntu/Chrome y me preocupa 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 funcionar bien en Firefox.
Otra forma de hacerlo es iniciar un servidor HTTP local en su directorio. En Ubuntu y MacOs con Python instalado, es una frase breve.
Vaya al directorio que contiene sus archivos web y:
python -m SimpleHTTPServer
Luego conéctese a http://localhost:8000/index.html con cualquier navegador web para probar su página.
Este es un problema conocido con Chrome.
Aquí está el enlace en el rastreador de errores:
Problema 40787: los archivos locales no se cargan con Ajax