当我调试Visual Studio项目使用Chrome浏览器尝试重定向到https相当于我的web地址。我没有在web项目中启用SSL,并且开始URL是http URL。当我使用FireFox或IE进行调试时,我没有这个问题。
我重新安装了Chrome浏览器,解决了这个问题一天。没有下载任何插件的问题再次发生了第二天。
什么是使Chrome重定向localhost到https?
网络巡检显示:
请求URL:数据:text / html, chromewebdata
请求头
显示临时标题
User-Agent:Mozilla/5.0 (Windows NT 6.3;WOW64) AppleWebKit/537.36 (KHTML,像Gecko) Chrome/36.0.1985.143 Safari/537.36
这些选项卡中没有预览和响应数据。
对于像我这样在本地主机上运行Node.js express服务器的人来说,我有这段代码可以将http重定向到https:
const server = express()
.use((req, res, next) => {
if (req.headers['x-forwarded-proto'] != 'https') {
res.redirect('https://' + req.headers.host + req.url)
} else {
next()
}
})
你必须确保它不会重定向localhost:
const server = express()
.use((req, res, next) => {
if (req.headers['x-forwarded-proto'] != 'https' && req.headers['host'].indexOf("localhost") == -1) {
res.redirect('https://' + req.headers.host + req.url)
} else {
next()
}
})
我也面临着同样的问题,但只是在Chrome金丝雀和寻找一个解决方案,我发现了这篇文章。
下一个版本的Chrome将强制所有以。dev(和。foo)结尾的域通过预加载的HTTP严格传输安全(HSTS)头重定向到HTTPs。
{ "name": "dev", "include_subdomains": true, "mode": "force-https" },
{ "name": "foo", "include_subdomains": true, "mode": "force-https" },
所以,改变你的域名。