2012-07-02 35 views
5

¿Cómo se lee un archivo en el directorio actual usando JQuery.getJSON()?JQuery.getJSON() leyendo un archivo local

Estoy intentando algo simple (con mi archivo data.json en el mismo directorio que mi archivo html):

$.getJSON("./data.json") 

y me sale el error:

XMLHttpRequest cannot load file:///C:/Projects/test/data.json. Origin null is not allowed by Access-Control-Allow-Origin.

tengo intenté todo tipo de combinaciones de ruta, pero parece que no funciona ...

EDITAR: Estoy usando Chrome, pero me gustaría trabajar en todos los navegadores ...

+0

¿Qué navegador estás usando? – ephemient

Respuesta

9

Si está utilizando Google Chrome, es intencional que AJAX en las rutas file:/// nunca funcione.

crbug/40787

1

No se trata de ruta

Es un problema entre dominios

Básicamente es necesario agregar una devolución de llamada en su URL, por lo que jQuery puede cambiar automáticamente el tipo de petición de JSON a jsonp

Ver este post para los detalles

2

Esto se debe a que se está ejecutando sus archivos web directamente desde su disco duro. Hay varias trampas en esto, una de las cuales ha encontrado. Lo ideal es que desee trabajar en un entorno de servidor, incluso localmente. Puede instalar un servidor LAMP local (gratuito) como XAMPP. Entonces, podrás usar AJAX local.

0

Una alternativa a la instalación de un servidor LAMP local es utilizar el servidor HTTP simple de python. Mientras tenga instalado Python, solo abra bash y use el intérprete de Python.

para Python 2 uso:

python -m SimpleHTTPServer 8000 

para Python 3 uso:

python -m http.server 8000 

A continuación, sólo apuntar su navegador en localhost: 8000 y no debería tener problemas para acceder al archivo si es en el mismo directorio.

+0

aunque 8000 es el puerto predeterminado, no es necesario mencionarlo si no desea cambiar el puerto. – Gahan