当我使用Chrome调试Visual Studio项目时,浏览器会尝试重定向到我的网址的https等效项 . 我没有在Web项目中启用SSL,并且起始URL是http URL . 当我使用FireFox或IE调试时,我没有这个问题 .
我确实重新安装了Chrome,它解决了一天的问题 . 没有下载任何插件,第二天就会再次出现问题 .
是什么让Chrome将localhost重定向到https?
网络检查显示:请求URL:数据:text / html,chromewebdata请求 Headers 临时 Headers 显示用户代理:Mozilla / 5.0(Windows NT 6.3; WOW64)AppleWebKit / 537.36(KHTML,如Gecko)Chrome / 36.0.1985.143 Safari / 537.36
这些选项卡中没有预览和响应数据 .
20 回答
我面临同样的问题,但仅在 Chrome Canary 并搜索我找到的解决方案this post .
因此,请更改您的域名 .
另一种选择是使用像https://github.com/rchampourlier/tunnelss这样的东西
当然它添加了另一个依赖/设置,但它也允许在dev中测试https,这可能很好 .
我使用RVM然而得到隧道工作我必须使用
sudo gem install tunnelss
和sudo tunnelss
这可能是由缓存的https重定向引起的,可以通过手动清除缓存来修复,如Adiyat Mubarak的答案 .
但是,如果您正在访问localhost,您可能是开发人员,在这种情况下,您会发现缓存清除铬扩展名,例如"classic cache killer"(请参阅例如https://chrome.google.com/webstore/search/classic%20cache%20killer?hl=en)在各种情况下都很有用,并且可能已经安装了一个 .
因此,快速解决方法是:安装缓存杀手(如果您还没有缓存杀手),打开它,然后重新加载页面 . 完成!
Chrome 63通过预加载的HSTS强制.dev域自动转换为HTTPS .
快速修复:只需将.dev域名更改为.localhost即可 .
对于像我这样懒惰的人来说,这是一个懒惰而快速的解决方案(在Chrome 67中工作) .
只需使用"Incognito Window"选项(CTRL SHIFT N)在 Stealth Mode 中启动另一个Chrome窗口即可 . 无需删除缓存,无需深入了解Chrome设置等 .
对于遇到同样问题的人,我通过按CTRL SHIFT DELETE来删除整个浏览器缓存 . 现在我可以通过HTTP协议访问我的localhost网站了 .
来自https://galaxyinternet.us/google-chrome-redirects-localhost-to-https-fix/
没有任何选项修复对我有用,为了修复
https://localhost:3000
,这样做了 .单击并按住
Reload
按钮并选择Empty Cache and Hard Reload
,这似乎只是localhost
上的一个选项转到Chrome中的设置,然后转到高级设置,在隐私和安全部分下单击清除浏览数据,然后清除所有数据 . 我按照这些步骤操作,它对我有用 . 希望它有所帮助 .
@Adiyat Mubarak回答对我不起作用 . 当我尝试清除缓存并进行硬重新加载时,页面仍然重定向到https .
我的解决方案:在网址栏的右上角(收藏夹星形图标的左侧)有一个带有“x”的图标 . 右键单击它,它会说“不安全的脚本”,然后有一个选项来加载它们 . 去做 .
Chrome 63(自2017年12月起)将强制所有以.dev(和.foo)结尾的域通过预加载的HTTP严格传输安全(HSTS)标头重定向到HTTPS . You can find more information about this here.
我相信这是由HSTS引起的 - 见http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
如果你有(开发)任何其他本地主机站点发送HSTS标头...
例如 . 严格运输安全:max-age = 31536000; includeSubDomains;预紧
...然后,根据max-age的值,将需要通过HTTPS提供对localhost的未来请求 .
为了解决这个问题,我做了以下几点 .
在Chrome地址栏中输入"chrome://net-internals/#hsts"
在页面的最底部是QUERY域文本框 - 验证浏览器是否知道localhost . If it says "Not found" then this is not the answer you are looking for.
如果是,请使用上面的文本框删除localhost域
您的站点现在应该使用普通的旧HTTP
这不是一个永久的解决方案,但至少会让它在项目之间运作 . 如果有人知道如何从HSTS列表中永久排除localhost,请告诉我:)
UPDATE - November 2017
Chrome最近已将此设置移至 Delete domain security policies
UPDATE - December 2017 如果您使用.dev域名,请参阅下面的其他答案,因为Chrome(和其他人)通过预加载的HSTS强制HTTPS .
新发展! (如果你有Chrome 63)
如果您的localhost域名是
.dev
,那么我认为以前接受和工作的答案不再适用 . 这是因为Chrome 63 Chrome将通过预加载的HSTS强制.dev域到HTTPS .这意味着,
.dev
基本上根本不会工作,除非你有正确的签名SSL证书 - 不再允许自签名证书! Learn more at this blog post.所以现在修复此问题并避免将来再次发生这种情况
.test
是一个推荐的域,因为IETF保留了它用于测试/开发目的 . 您还应该能够将.localhost
用于本地开发 .我在Chrome中遇到了同样的问题,但我尝试使用BigJump's solution失败了 .
我通过强制进行硬刷新修复了我的问题,如blog所示(最初来自此SuperUser answer) .
确保您的地址栏使用http方案,然后执行这些步骤,可能需要几次:
打开“开发人员工具”面板(CTRL SHIFT I)
单击并按住重新加载图标/右键单击重新加载图标 .
菜单将打开 .
从此菜单中选择第3个选项("Empty Cache and Hard Reload")
这些都不适合我 . 它是在带有本地URL的chrome更新(版本63.0.3239.84,linux)之后开始发生的 . 无论如何,总是会重定向到https . 失去了几个小时,对此充满了耐心
究竟起了什么才能改变领域 .
值得一提的是,域名是.app . 也许它有事可做?并将其更改为.test并且chrome停止重定向
我也一直在努力解决这个问题 . 似乎HSTS仅适用于域名 . 因此,如果您在本地计算机上进行开发,则使用IP地址会更容易 . 所以我从localhost切换到127.0.0.1
这不是一个解决方案,它只是一种解决方法 .
单击解决方案资源管理器中的visual studio项目(顶级),然后转到属性窗口 .
更改SSL已启用为true . 您现在将在属性窗口中看到另一个端口号为“SSL URL” .
现在,当您运行应用程序(或在浏览器中查看)时,您必须手动将端口号更改为地址栏中的SSL端口号 .
现在它作为SSL链接正常工作
这是今天最快的解决方案(17-3-2018):
关闭所有Chrome标签/窗口并在您的命令行上运行:(或将其添加为短代码)
在我的情况下,我将我的项目路径设置为
/Users/me/dev/project_root/
并从那里运行nodeJS
/express
服务器 . 将我的路径重命名为/Users/me/project_root
(从项目路径中删除dev
)解决了该问题 .最有可能与这项新规定有关:
您可以找到有关此here的更多信息 .
使用:
谷歌浏览器版本70.0.3538.110(官方版)(64位)
nodeJS v9.2.0
捎带Adiyat Mubarak
无法刷新,因为它只是在https上刷新 . 遵循一些相同的步骤 .
我从来没有想出问题的根源,但我能够解决这个问题 . 我删除了解决此问题的Google Chrome应用缓存文件夹 .
C:\用户[用户] \应用程序数据\本地\谷歌\ Chrome浏览器