使用 JavaScript/jQuery 在本地获取 JSON
Getting JSON locally using JavaScript/jQuery
>我在这里读了几个问题,指出由于安全策略等原因,JSON文件无法在谷歌浏览器中本地加载。所以我在 http://youmightnotneedjquery.com/上找到了解决方案。
我的JavaScript现在看起来像这样:
jQuery(document).ready(function($){
var items = [];
var settingsFile = "corr/settings.json";
var sidePanel = $(document.createElement('div')).addClass('corrPanel').appendTo('body');
/**
* Gets JSON file
* @param string jsonFile
* @return json file contents
*/
function getSettings(jsonFile) {
request = new XMLHttpRequest();
request.open('GET', jsonFile, true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
jsonRows = JSON.parse(request.responseText);
console.log(jsonRows);
$.each(jsonRows, function(key, row) {
items.push("<input type='text' class='iris' id='" + row.section + "'>");
});
console.log(items);
} else {
console.log("Error getting JSON file");
}
};
request.send();
}
getSettings(settingsFile);
console.log(items);
});
控制台.log返回 JSON 文件的输出,没有问题。
所以,一切运行良好,但由于我是 JavaScript 的新手(并且真的不知道如何使用那里的函数和属性),数据属性没有设置(并返回),所以结果属性也是未定义的。
你能告诉我如何在函数之外传递请求结果吗?
谢谢
编辑:我将推送结果添加到项目数组,它在getSettings函数的本地上下文中可用,但最后一个控制台.log尚未输出。
整个问题是我试图直接访问 items 属性。但是请求设置是在页面加载后调用的。所以我把逻辑移到了成功部分。
if (request.status >= 200 && request.status < 400) {
// execute success code and manage items here ...
}
相关文章:
- 如何使用 Node JS 获取 JSON 嵌套数组值
- 使用Javascript/JQuery获取JSON GET数据
- 在jQuery中获取JSON
- 如何使用jQuery按键搜索和获取json行数据
- 如何使用jquery获取Json的节点
- 通过字符串获取JSON对象
- 通过Azure存储以HTML形式获取JSON文件
- 获取JSON并使用Javascript解析为字符串
- 如何在angular中获取json对象的名称
- 如何使用angular获取json对象的名称
- 如何使用Ajax JQuery.ech()获取JSON值
- 可以't通过从googlemapapi获取json值
- 获取json结果的身份验证问题
- Javascript:获取 JSON 中的值计数
- 按服务获取JSON数据
- 如何使用javascript获取json元素
- 从javascript文件中获取JSON,并使用NodeJS在路由文件中显示
- 如何从给定的代码中获取JSON对象
- 获取 JSON 数据将数组项添加到变量
- 如何从具有动态可观察属性的淘汰对象中获取 JSON 字符串