前言
对于单纯的静态网站而言, 我们有时候可能会直接将json数据放在本地, 此时涉及到json文件内容读取的问题
假设html同级目录下有一个名为data.json的文件, 读取的方式有:
第一种 使用ajax
1 | $.ajax({ |
第二种 getJson
1 | $.getJSON("data.json", function (data) { |
第三种 使用原生XMLHttpRequest
1 |
|
跨域问题
我们在进行本地代码测试的时候, 如果以双击的形式打开html, 会出现跨域问题, 浏览器控台报错如下:
1 | 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 |
解决方法有两种:
第一种是给网页添加一个域名, 比如
localhost, 我们可以使用python或者nodejs在本地启动一个服务, 这里以python3为例:1
python -m http.server 8000
启动服务后, 浏览器输入
localhost:8000, 即可正常获取到本地json数据第二种是修改本地浏览器设置, 以
Windows平台谷歌浏览器为例, 启动时添加参数--allow-file-access-from-files
本文为作者原创转载时请注明出处 谢谢
