最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How to load local JSON files in Javascript - Stack Overflow

programmeradmin0浏览0评论

I'm writing a web app (well, actually it will eventually be an OS X Dashboard widget, but I decided to prototype it first as a simple web page) that needs to load some initializing data from a local JSON file. My code looks like this:

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);
}

The function get called from an onLoad() event in the HTML file's BODY tag. Now, from what I see when debugging, the function gets executed, but the onReadytStateChange event handler never gets called.

What should I do? I thought it was a bit odd to use a XMLHttpRequest to access a local file, but the new tutorials I've seen that deal with this issue seem to say that it should work (the 99% of docs I've seen talk about how to load JSON from a remote server, not from a local file).

I'm testing using Firefox 3.6.10, but I've also tried with Safari 4.

I'm writing a web app (well, actually it will eventually be an OS X Dashboard widget, but I decided to prototype it first as a simple web page) that needs to load some initializing data from a local JSON file. My code looks like this:

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);
}

The function get called from an onLoad() event in the HTML file's BODY tag. Now, from what I see when debugging, the function gets executed, but the onReadytStateChange event handler never gets called.

What should I do? I thought it was a bit odd to use a XMLHttpRequest to access a local file, but the new tutorials I've seen that deal with this issue seem to say that it should work (the 99% of docs I've seen talk about how to load JSON from a remote server, not from a local file).

I'm testing using Firefox 3.6.10, but I've also tried with Safari 4.

Share Improve this question edited Oct 9, 2010 at 16:17 gblazex 50.1k12 gold badges99 silver badges92 bronze badges asked Oct 9, 2010 at 15:52 PaulJPaulJ 1,7185 gold badges33 silver badges56 bronze badges 2
  • 2 This is why I was pushing for the option of an assignment clause to precede a JSON object declaration back in 2005 before all the various programming language JSON clients rushed towards an ad hoc standardization: web.archive.org/web/20060212113746/htmatters.net/htm/1/2005/07/… – Dexygen Commented Oct 9, 2010 at 15:56
  • You want application/json, but if the file is local, it will not have that mime type. Try commenting the override out – mplungjan Commented Oct 9, 2010 at 15:58
Add a comment  | 

2 Answers 2

Reset to default 9

onreadystatechange property has no capital letters. See: MDC XMLHttpRequest

Unless we add extension .json and MIMETYPE application\json, IIS will throw an error.

See here: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/cd72c0dc-c5b8-42e4-96c2-b3c656f99ead.mspx?mfr=true

发布评论

评论列表(0)

  1. 暂无评论