簡體   English   中英

如何處理Axios中的net :: ERR_CONNECTION_REFUSED - Vue.js

[英]How to handle net::ERR_CONNECTION_REFUSED in Axios - Vue.js

以下是我的連接請求代碼:

doLogin(this.login).then(response => {
        var token = response.data.token;
        localStorage.setItem('AUTH_TOKEN', JSON.stringify(token));
        this.$router.push({name: 'Devices'});
        });
      }).catch(error => {
        console.log(error.response.data.message);
      });

catch()的一部分用於HTTP錯誤工作正常(如400404403 ..等)。 但是當我的服務器離線時,這個腳本只會拋出net::ERR_CONNECTION_REFUSED 有沒有辦法處理此錯誤並讓前端用戶知道服務器當前處於脫機狀態。

這是doLogin ()函數以防萬一,

function doLogin(data) {
  const url   = 'http://localhost:3000/authenticate';
  return axios.post(url,data);
}

你可以在catch部分嘗試這個:

catch(error => {
        if (!error.response) {
            // network error
            this.errorStatus = 'Error: Network Error';
        } else {
            this.errorStatus = error.response.data.message;
        }
      })

您可以像PanJunjie潘俊傑建議的那樣驗證自己,或者使用像sindresorhus / is-reachable這樣的庫。 后者將是我的首選。

干杯!

您應該執行@chith在.then .then()指出的相同驗證,因為在我的服務器測試請求時,我遇到了一個奇怪的問題,“響應”就好像它是成功的。

此外,在.then()使用response.status而不是response.error

你可以使用攔截器

axios.interceptors.response.use(
    response => {
        return response
    },
    error => {
        if (!error.response) {
            console.log("Please check your internet connection.");
        }

        return Promise.reject(error)
    }
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM