POST http://xxx net::ERR_NAME_NOT_RESOLVED 解決

Peter-OK發表於2020-12-29

 

測試環境啟動後,專案A前端訪問專案B某介面報錯 net::ERR_NAME_NOT_RESOLVED,F12,切到Network看到介面狀態如下:

切換到Console看到狀態如下:

懷疑是專案A、B伺服器網路不通的問題,結果運維同事在專案A伺服器上curl 專案B的介面,返回200,說明網路是通的。。。

百思不得其解,網上各種查詢也沒有相關答案, 還以為是Docker機器裡DNS解析的問題,,,
糾結了一下午,忽然想清楚了,在專案A伺服器上curl 專案B的介面,返回200,說明專案A、B伺服器是通的。而我在本機訪問專案A,再在專案A中訪問專案B,這就要好好考慮清楚了:

方式一:如果我本機是通過專案A轉發到專案B,那麼肯定是沒問題的,因為我本機到專案A是通的,專案A到專案B也是通的。

方式二:如果我本機通過專案A重定向到專案B,那麼就要看我本機到專案B是否是通的了。

此處我本機是通過專案A的js檔案裡配置的地址直接訪問了專案B,也就是上面的方式二,中間並未經過專案A轉發,所以一切就明瞭了:我本機到專案B不通,導致報錯 net::ERR_NAME_NOT_RESOLVED

此處用的是測試環境內網域名,所以修改我本機host檔案(C:\Windows\System32\drivers\etc\hosts)新增上專案B伺服器IP和內網域名的對映:

再次訪問,

200 OK

相關文章