当我调试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

这些选项卡中没有预览和响应数据。


当前回答

我也一直在这个问题上挣扎。看来HSTS只针对域名。所以如果你是在本地机器上开发,使用IP地址要容易得多。所以我从localhost切换到127.0.0.1

其他回答

借阿迪亚特·穆巴拉克的东风

不能硬刷新,因为它只是在https上刷新。遵循一些相同的步骤。

1. Open chrome developer tools (ctrl + shift + i)
2. Network Tab at the top
3. Click Disable cache checkbox at the top (right under network tab for me).
4. Refresh page (while the developer tools is still open)

新发展!(如果你有Chrome 63+)

如果您的本地主机域是.dev,那么我认为之前接受的答案是行不通的。原因是因为自Chrome 63以来,Chrome将通过预加载的HSTS强制。dev域使用HTTPS。

这意味着,.dev基本上不能再工作了,除非您有适当的签名SSL证书——不允许有自签名证书!在这篇博客文章中了解更多。

因此,现在要修复这个问题,并避免这种情况在未来再次发生。test是一个推荐的域名,因为它是由IETF保留用于测试/开发目的。您还应该能够将.localhost用于本地开发。

为像我这样的懒人(在Chrome 67中工作)提供了一个懒惰和快速的解决方案。

只需在隐身模式下启动另一个Chrome窗口,使用“隐身窗口”选项(CTRL + SHIFT + N)。不需要删除缓存,不需要深入Chrome设置等。

不幸的是,这里列出的解决方案都不能帮助我解决这个问题。我通过使用http://127.0.0.1 (ip地址)而不是http://localhost修复了这个问题。一个用chrome浏览器进行角开发的小技巧。

对于像我这样在本地主机上运行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()
    }
  })