難以想象的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。

相關文章
相關標籤/搜索