使用getJSON Ajax请求本地JSON子文件夹文件遇阻求助
嘿,我来帮你搞定这个本地JSON请求的问题~先看了你贴的代码和JSON内容,结构上是没问题的,大概率是本地环境或者路径的坑,给你列几个常见的排查方向:
本地文件协议的安全限制
直接双击HTML文件用file://协议打开的话,大部分浏览器会因为安全策略阻止AJAX请求(毕竟本地文件不属于HTTP协议范畴)。解决办法是搭个本地静态服务器:- 如果你有Python,在项目根目录打开终端,运行:
# Python 3 python -m http.server 8000 # Python 2 python -m SimpleHTTPServer 8000 - 然后在浏览器访问
http://localhost:8000,再测试请求就正常了。
- 如果你有Python,在项目根目录打开终端,运行:
文件路径是否正确
你写的/assets/data/dados.json是根路径写法,得确保你的项目根目录下确实有assets/data/dados.json这个层级。如果你的HTML文件不是在项目根目录,比如在html文件夹里,那得改成相对路径,比如../assets/data/dados.json,或者用./assets/data/dados.json(表示当前HTML所在目录的同级assets文件夹)。JSON格式的隐性错误
你贴的JSON看起来没问题,但有时候可能存在隐藏的语法问题(比如全角逗号、引号不匹配)。可以把JSON内容复制到浏览器控制台,运行JSON.parse('[ {"nome": "Alabama", "abreviacao": "AL"}, {"nome": "Alaska", "abreviacao": "AK"} ]'),如果报错就说明有语法问题,修正后再试。jQuery是否正确加载
别忘了在你的脚本之前引入jQuery,不然$会未定义,请求根本发不出去。比如在HTML里加:<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
最后给你调整后的示例代码,方便测试:
$.getJSON("./assets/data/dados.json") .done(function(dados){ console.log("请求成功,数据:", dados); }) .fail(function(jqxhr, textStatus, error){ console.error("请求失败:"); console.error("状态:", textStatus); console.error("错误信息:", error); });
内容的提问来源于stack exchange,提问作者Henrique Arantes Tiraboschi

