难以想象的BUG

莫看江面平如镜,要看水底万丈深——记一次由表象引发的不是BUG的BUGjavascript

原由

先上图
image
一位同窗碰到了这样一个问题:明明配置的请求地址是ip,为何变成域名了。java

上图,第一行是实际请求报错的接口,第二行才是打印出的真正配置的接口地址,因为项目上会根据项目环境,会切换接口地址,方便开发、测试、生产。个人第一反应就是切换地址的逻辑有问题。仔细跟了他写的代码,确实在接口请求前,地址是开发地址,但请求以后变成了生产地址。微信

本身折腾了半天,尝试了各类方案:微信开发

  • 把地址换成固定的字符串,如aaa,没问题;
  • 将接口定义文件内容简化;
// 简化前
export default {
  dev: {
    DEV_URL: ''
  },
  test: {
    TEST_URL: ''
  },
  prod: {
    PROD_URL: ''
  }
}
// 简化后
export default {
  dev: '',
  test: '',
  prod: ''
}
  • 我把生产地址注释掉,发现还调用的是生产地址

而后我又把锅甩给了微信开发者工具,哈哈工具

好吧,我须要冷静,程序不可能出这种难以想象的错误,回想了最后尝试的一种状况,本身明明把地址注释了,为何还能显示,而后又尝试全局搜索,仍是没发现这个地址……测试

撞鬼了……spa

冷静……调试

冷静……code

冷静……blog

我默默的打开了调试调试工具的network模块
image

我靠,301这不是重定向嘛,看了看详情,果然如此,原本我发送的求情开发库,结果被重定向到了生产环境了

总结

表象迷惑了我,若是早点打开network就不会遇到这么多问题,最终仍是坚信有条理的代码,不会产生难以想象的bug。

相关文章
相关标签/搜索