开发者在本地开发与后台进行联调阶段时,Chrome 浏览器上出现 307 状态码,并跳转到 https 版
但是 307 代码是什么含义呢?页面又为何会出现 307 状态码呢?我之前都没见过这个状态码,查了才知道原来它也是一种重定向。
那么,引起307状态码的是什么原因呢;
举个例子,本地开发联调时访问的接口域名是http://xxx.mm.com,需要代理host为:xxx.mm.com;正常情况下是无问题的,正常联调;但是啊,注意,只要你访问了线上https://xxx.mm.com
,注意是https
后,你发现再启动项目联调的时候,接口访问的地址会自动重定向到https,这时候就会报307状态码了,然后你各种尝试,无力回天;
这就说到了 HSTS 这东西,白话讲就是,只要你浏览器上同样的域名用https访问过了,浏览器会记录下来,出于什么什么策略,你后续再用http访问,就会自动重定向到https,巴拉巴拉…
解决方法有两种:
1、清除浏览器的信息及设置什么,这种没尝试 但有博友说可以解决,就是比较麻烦,每次操作误访问了https,都得操作下
2、把host代理域名改为和线上域名不一致,就不会存在这个问题了
然后,项目中的env文件也需要改下
注意只需要改预发环境和测试环境的就可以,线上的env.production不用动;
至于 307 状态码,其实就是个重定向而已。比起 301 和 302 这些,307 重定向是可以把 POST 的数据也一并重定向的。