当我得到" $ ref"时,我必须动态地读取JSON文件。在 Json架构。
我尝试使用node.js访问json文件' fs'模块。但是这会导致错误&f;'fF()' 不起作用。
我后来尝试了Ajax调用但是我遇到了错误。
XMLHttpRequest cannot load file:///Users/as6/Downloads/1099K.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
下面是我在javascript中读取json文件的代码。
function readTextFile(file, callback) {
var rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("application/json");
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4 && rawFile.status == "200") {
callback(rawFile.responseText);
}
}
rawFile.send(null);
}
readTextFile("file:///Users/as6/Downloads/1099K.json", function(text){
var data = JSON.parse(text);
console.log(data);
});
如果没有 Jquery ,我将如何在javascript中读取JSON文件?
答案 0 :(得分:1)
错误已经告诉你出了什么问题。
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
问题是你试图通过file://
协议打开本地文件,并且浏览器告诉你,你不能使用XHR。这里的简单修复是在您的计算机上安装一个最小的静态文件服务器。
有关COR的更多信息,请访问:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
正如您提到的nodejs,我将继续并假设您安装了它。我建议https://www.npmjs.com/package/http-server这样你就可以起来跑步了。
答案 1 :(得分:1)
您需要在该目录中运行服务器,而不仅仅是在浏览器中打开您的html。
尝试在html文件所在的目录中运行python -m SimpleHTTPServer
。
将您的json文件移动到您的html文件所在的位置。然后用http://localhost:8000/1099K.json替换file:///Users/as6/Downloads/1099K.json
浏览器这种方式很奇怪,它不允许你为以file:///
开头的链接做ajax