如何从带有ajax的文件加载JSON对象?

rub*_*o77 17 javascript ajax json

我正在使用JSON传输数据.

我的HTML页面中需要什么来读取一个只包含一个JSON对象的Ajax文件到我的脚本中?

我是否也需要jQuery,或者是否可以使用Ajax加载该JSON文件?

它在不同的浏览器上有所不同吗

Den*_*ret 56

你不需要任何库,一切都在vanilla javascript中可用来获取一个json文件并解析它:

function fetchJSONFile(path, callback) {
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
        if (httpRequest.readyState === 4) {
            if (httpRequest.status === 200) {
                var data = JSON.parse(httpRequest.responseText);
                if (callback) callback(data);
            }
        }
    };
    httpRequest.open('GET', path);
    httpRequest.send(); 
}

// this requests the file and executes a callback with the parsed result once
//   it is available
fetchJSONFile('pathToFile.json', function(data){
    // do something with your data
    console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

  • 您可能想要添加`|| httpRequest.status === 0`(用于本地连接).当我开始学习`xmlhttprequest`时,这真的让我兴奋不已 (3认同)
  • @JuanMendes这段代码唯一需要支持旧版IE的是`var httpRequest =(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");`但是,谁关心旧版本的IE浏览器?;) (2认同)