记录一次诡异页面调试问题
现象:
在一个风平浪静的早上,收到运营同学反馈系统页面打不开要么报错,并且再次刷新后会调到一个公用的不同域名的错误页。
分析:
很熟练的打开了chrome
的console
页面,然后看到加载js的时候报了一个错Cross-Origin Read Blocking(CROB)
的错误。
根据后面的提示打开了一个https://www.chromestatus.com/feature/5629709824032768
的链接,以为是我们的script没有加类型导致(原来的引入js是<script src="xxx.js"/>
),就满心欢喜规范了一下引入的js,但是上线后发现情况依旧。
看了很久,也没有发现什么端倪。请教了一个前端架构师,得到了一个很宝贵的建议,这个是不是请求就没到后端,后端做了什么拦截还没有到你的应用?
突然就好像明白了,原来访问后端应用服务器的时候有一台机器挂掉了,本来应该报404的错误,但是前面有一个登陆拦截,将404转成了500的错误,然后就出现了Corss-Origin Read Blocking(CROB)
的错误。重启果然解决问题。
后记:
Cros
和Crob
不是很熟悉,导致解决问题很慢。
遇见前端请求失败时,需要注意到错误码不一定是自己应用返回的,难以通过前端来定位错误时,更多的需要从后端开始定位问题。
- 使用绑定host的方式来访问应用URL
- 添加后端URL监控