如何本地无服务器启动已部署的Angular应用?
问题解决:Angular前端直接用Firefox打开HTML的CORS问题
你的Angular部署包包含以下三个脚本文件,在服务器上运行正常:
/runtime.0fad6a04e0afb2fa.js /polyfills.24f3ec2108a8e0ab.js /main.a9b28b9970fe807a.js
但直接点击HTML文件用Firefox打开时,出现以下CORS错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///runtime.0fad6a04e0afb2fa.js. (Reason: CORS request not http).
这是因为Firefox默认安全策略会限制file://协议下的跨源请求——这类请求不属于HTTP/HTTPS范畴,触发了同源策略拦截。Firefox并非永远不允许加载这类脚本,可通过以下两种方法解决:
可行解决办法
方法1:修改Firefox配置解除限制
- 打开Firefox,在地址栏输入
about:config,确认风险提示后进入配置页面 - 在搜索框输入
security.fileuri.strict_origin_policy,将该配置项的值改为false - 重启Firefox后,再打开项目的HTML文件即可加载脚本
- 注意:该配置会降低浏览器本地文件访问的安全性,使用完毕建议改回默认的
true
方法2:使用轻量本地服务器(更安全)
无需IIS或Apache,用简单的本地服务器模拟HTTP环境即可:
- Node.js的http-server:
- 全局安装:
npm install -g http-server - 进入Angular项目的部署目录,运行命令:
http-server - 在Firefox中访问
http://localhost:8080即可正常运行应用
- 全局安装:
- Python内置服务器:
- Python3环境:在部署目录运行
python -m http.server 8080 - Python2环境:在部署目录运行
python -m SimpleHTTPServer 8080 - 访问
http://localhost:8080即可启动应用
- Python3环境:在部署目录运行
内容的提问来源于stack exchange,提问作者Volia
相关产品推荐
相关产品推荐

