JS读取本地json文件的方法汇总

前言

对于单纯的静态网站而言, 我们有时候可能会直接将json数据放在本地, 此时涉及到json文件内容读取的问题

假设html同级目录下有一个名为data.json的文件, 读取的方式有:

第一种 使用ajax 

$.ajax({
                url: "data.json",//同文件夹下的json文件路径
                type: "GET",//请求方式为get
                dataType: "json", //返回数据格式为json
                success: function (data) {//请求成功完成后要执行的方法 
                    console.log(data);
                }

            })

 第二种 getJson

$.getJSON("data.json", function (data) {
              console.log(data)
          });

第三种 使用原生XMLHttpRequest 

var url = "data.json"
// 申明一个XMLHttpRequest
var request = new XMLHttpRequest();
// 设置请求方法与路径
request.open("get", url);
// 不发送数据到服务器
request.send(null);
//XHR对象获取到返回信息后执行
request.onload = function () {
    // 解析获取到的数据
    var data = JSON.parse(request.responseText);
    console.log(data)

}

跨域问题

我们在进行本地代码测试的时候, 如果以双击的形式打开html, 会出现跨域问题, 浏览器控台报错如下:

Access to XMLHttpRequest at 'file:///Users/songjian/Desktop/data.json' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https, isolated-app

解决方法有两种:

1.第一种是给网页添加一个域名, 比如localhost, 我们可以使用python或者nodejs在本地启动一个服务, 这里以python3为例:
python -m http.server 8000

启动服务后, 浏览器输入localhost:8000, 即可正常获取到本地json数据 

 2.第二种是修改本地浏览器设置, 以Windows平台谷歌浏览器为例, 启动时添加参数--allow-file-access-from-files

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值