問題
同事詢問,程式透過 axios 來發出 post ,
URL 給的是 http://localhost:3978
,
但卻會發生 AxiosError ECONNREFUSED 的錯誤,
解決
同事開啟 Browser 連到 http://localhost:3978
卻是可以正常顯示網頁,
看 axios 噴出的錯誤 Address 是 127.0.0.1 ,
於是請同事在 Browser 上改輸入 http://127.0.0.1:3978
結果會出現 ERR_CONNECTION_REFUSED 的錯誤,
改用自已的 IP ,也是會出現 ERR_CONNECTION_REFUSED 的錯誤。
Bingo….
從這個問題想帶給大家的是 Debug 的觀念,
有時在 Debug 時,會因為習慣,而導致忽略掉細微的資訊,
大家都會認為 localhost 就是 127.0.0.1 ,
所以在 Browser 上 http://localhost
可以正常呈現,http://127.0.0.1
也一定可以。
就會導致將問題導向程式本身,懷疑程式是不是寫的有問題,而浪費的許多時間。
殊不知,localhost
是對應到 ipv6 的 ::1:
,而同事的本機 ipv4 是被連到的。
後來請同事參考 localhost is working but not 127.0.0.1 in windows 7 ,讓它的 ipv4 可以被連到。
雖然這問題不難,但容易讓除錯的人進入到誤區之中
筆者有時也會進入到這種偵錯的誤區之中,還好有同事、朋友的一起幫忙來找到正確的方向
在此也希望大家在除錯時,可以多跟同事、朋友討論,或許他們的一句話,就會讓你有突錯點
大家一起加油 ^_^