2010-10-09 75 views
19

Estoy escribiendo una aplicación web (bueno, en realidad, con el tiempo será un widget del Tablero OS X, pero decidí prototipar primero como una simple página web) que necesita cargar un poco inicializando datos de un archivo JSON local. Mi código es el siguiente:Cómo cargar archivos JSON locales en Javascript

function loadDatos() { 
    var xobj = new XMLHttpRequest(); 
    xobj.overrideMimeType("application/json"); 
    xobj.open('GET', 'datos.json', true); 
    xobj.onReadyStateChange = function() { 
     if (xobj.readyState == 4) { 
      var jsonTexto = xobj.responseText; 
      ProcessTheData(jsonTexto); 
     } 
    } 
    xobj.send(null); 
} 

La función get llamó desde un evento onLoad() en la etiqueta BODY del archivo HTML. Ahora, por lo que veo cuando se depura, la función se ejecuta, pero nunca se llama al controlador de eventos onReadytStateChange.

¿Qué debo hacer? Pensé que era un poco extraño usar XMLHttpRequest para acceder a un archivo local, pero los nuevos tutoriales que he visto sobre este tema parecen indicar que debería funcionar (el 99% de los documentos que he visto hablan sobre cómo para cargar JSON desde un servidor remoto, no desde un archivo local).

Estoy probando el uso de Firefox 3.6.10, pero también he tratado con Safari 4.

+2

Esto es por qué estaba presionando para que la opción de una cláusula de asignación de preceder a una declaración de objeto JSON en 2005 antes de que todos los diferentes clientes JSON lenguaje de programación corrieron hacia una estandarización ad hoc: http: //web.archive.org/web/20060212113746/htmatters.net/htm/1/2005/07/evaling-JSON.cfm –

+0

Desea la aplicación/json, pero si el archivo es local, no tendrá ese tipo de mimo . Intente comentar la anulación – mplungjan

Respuesta

Cuestiones relacionadas