本地HTML文件在Firefox中运行时JavaScript无法发起网络请求求助
可复现问题的代码
<!DOCTYPE html> <h1>StackOverFlow</h1> <script src="js/jquery.min.js" language="javascript"> $.getJSON('https://jsonip.com/', function(data) { document.writeln("<p> " + JSON.stringify(data, null, 2) + "</p>"); }); </script>
问题原因
- 你是通过
file://协议打开本地HTML文件的,Firefox默认开启了严格的本地文件源策略,file://协议下的页面发起跨域请求会被浏览器直接拦截,不会进入网络请求队列,因此网络面板看不到任何请求记录。 - 若本地
js/jquery.min.js文件路径错误,会导致jQuery未加载成功,$标识符未定义,后续的$.getJSON代码直接报错终止运行,也不会发起请求。
解决方案
- 先排查代码报错:打开Firefox开发者工具的控制台面板,查看是否有
$ is not defined类的报错,如有请调整jQuery文件的本地存储路径,确保引入正确。 - 临时放开本地文件跨域限制(仅测试用,测试完成后建议改回默认配置):在Firefox地址栏输入
about:config进入配置页,搜索security.fileuri.strict_origin_policy,将该配置项的值修改为false即可。 - 推荐更安全的测试方式:在本地启动静态HTTP服务运行页面,无需修改浏览器配置。比如在HTML文件所在目录打开终端,执行对应命令启动服务:
- Python3环境:
python3 -m http.server 8000 - Node.js环境(需安装http-server包):
http-server -p 8000
启动后访问http://localhost:8000/[你的HTML文件名]即可正常发起网络请求。
- Python3环境:
内容的提问来源于stack exchange,提问作者PlzHelp
相关产品推荐
相关产品推荐

