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

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


当前回答

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

其他回答

Chrome 63强制。dev域通过预加载的HSTS自动转换为HTTPS。 快速修复:只需将.dev域更改为.localhost。

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

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

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

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

这些对我都没用。它开始发生在chrome更新(版本63.0.3239.84,linux)与一个本地URL。无论如何都会重定向到https。我在这上面浪费了很多时间和耐心

最终起作用的只是改变定义域。

不管怎样,域名是。app。也许是有什么事?只是把它改为。test和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()
    }
  })

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

不能硬刷新,因为它只是在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)