【问题标题】:Fetch json data from local using pure Javascript Ajax使用纯 Javascript Ajax 从本地获取 json 数据
【发布时间】:2016-03-10 14:06:38
【问题描述】:

所以我知道问这个问题太蹩脚了,因为我花了一天时间搜索这个主题,但没有任何成功。和其他许多人一样,我面临着跨域问题。我到处看到的建议是更新服务器上的 JSON 文件或使用我不能使用的 localhost,因为我的分配不允许这样做。

我发布这个问题希望有其他解决方案。 我需要使用纯 JavasSript 和 Ajax 从本地 JSON 文件中获取数据,这不涉及托管在服务器或 localhost 上(使用绝对路径也是一个坏主意)。

这是我目前的代码:

function loadJSON(callback) {
  var xobj = new XMLHttpRequest();
      xobj.overrideMimeType("application/json");
      xobj.open('GET', '/json/userinfo.json', true);
      xobj.onreadystatechange = function () {
        if (xobj.readyState == 4 && xobj.status == "200") {
          callback(xobj.responseText);
        }
  };
  xobj.send(null);
}

(function() {
  loadJSON(function(response){
    var actual_JSON = JSON.parse(response);
    console.log(actual_JSON);
  })
})()

【问题讨论】:

  • 使用了哪个浏览器? , 铬合金 ?见stackoverflow.com/questions/32996001/…
  • 如果是 IE 则必须强制 ActiveXObject('Microsoft.XMLHTTP') 获取本地文件:stackoverflow.com/questions/2142156/…
  • @guest271314 我不能用浏览器做任何事情,因为我的教练会让它在他自己的电脑上运行
  • @LuckyLam 是 js 在帖子中没有返回预期结果吗?
  • @guest271314 是的,它在 Chrome 上给出错误提示“跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。”在 Firefox 上,我可以让它工作,但必须使用绝对路径,相对路径不起作用,给出错误“NS_ERROR_DOM_BAD_URI:访问受限 URI 被拒绝”

标签: javascript json ajax


【解决方案1】:

您将无法使用 AJAX/XHR 访问本地文件。它不是为此目的而设计的。 您可以做的是将您的 json 数据分配到 json 文件中的变量中,

var data = [{

}];

然后使用script 标签加载您的 json 文件,如下所示:

<script type="text/javascript" src="file_name.json"></script>

现在可以使用data 变量访问所有 json 数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2020-07-23
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 2010-10-24
    相关资源
    最近更新 更多