上线的项目中,是外网访问界面,使用的是https域名,这次迭代开发的内容,需要部署在内网,使用的是http域名。内外网分别部署。
问题现象:
项目部署到测试环境后,发现会自动的将http请求升级为https请求,导致请求报错.
经定位是使用vite构建项目时,index.html中加入了:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
删除这行代码 打包部署,问题解决。
借此普及一下这句代码的作用是:让浏览器不显示HTTPS页面中HTTP请求警报。
一般采用以下两种方式:
- 服务器:Apache、Nginx甚至是后端语言的响应头中加入:CPS设置upgrade-insecure-requests作用是让浏览器自动升级请求。
header(“Content-Security-Policy: upgrade-insecure-requests”);
- 页面中加入meta头:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
页面一旦发现存在上述响应头,会在加载http资源时自动替换成https请求。