1. 程式人生 > 其它 >27js基礎,資料型別轉換

27js基礎,資料型別轉換

 

create例項,呼叫get或post方法,可通過interceptor設定對請求和響應的過濾

適用於小專案:

import axios from 'axios'

// 丟擲錯誤
function errorLog(err) {
  const err = new Error(msg);
  throw err;
}
 //固定的URL
let serverURL = 'https://www.lxq/request' 

// 建立一個 axios 例項
const service = axios.create({
    baseURL: serverURL,
    timeout: 300000 // 請求超時時間
});

service.interceptors.request.use(
    config => {
        if (config.headers.pageType && config.headers.pageType === 'upload') {
            config.baseURL = 'https://www.ll./office/'
            return config
        }
        return config
    },
    error => {
        console.log(error);
        Promise.reject(error)
    }
);

// 響應攔截器
service.interceptors.response.use(
    response => {
        if (response.config.headers.RequestName) {
            return response;
        }
       // 狀態碼與後臺約定
        const dataAxios = response.data;
        const {
            code
        } = dataAxios;
        // 根據 code 進行判斷
        if (code === undefined) {
            return dataAxios
        } else {
            switch (code) {
                case 0:
                    // [ 示例 ] code === 0 代表沒有錯誤
                    return dataAxios.data;
                case '1':
                    //
                    return dataAxios;
                default:
                    if (!dataAxios.message) {
                        errorCreat(`${dataAxios.msg}`)
                    } else {
                        errorCreat(`${dataAxios.message}`)
                    }
                    break
            }
        }
    },
    error => {
        if (error && error.response) {
            switch (error.response.status) {
                case 400:
                    error.message = '請求錯誤';
                    break;
                case 401:
                    error.message = '未授權,請登入';
                    break;
                case 403:
                    error.message = '拒絕訪問';
                    break;
                case 404:
                    error.message = `404`;
                    break;
                case 408:
                    error.message = '請求超時';
                    break;
                case 500:
                    error.message = '伺服器內部錯誤';
                    break;
                case 501:
                    error.message = '服務未實現';
                    break;
                case 502:
                    error.message = '閘道器錯誤';
                    break;
                case 503:
                    error.message = '服務不可用';
                    break;
                case 504:
                    error.message = '閘道器超時';
                    break;
                case 505:
                    error.message = 'HTTP版本不受支援';
                    break;
                default:
                    break
            }
        }
        return Promise.reject(error)
    }
);

export default service