axios請求方法封裝.


axios的使用上一般封裝好對應的方法,ES6導出,直接調用,消息通知使用了ElementUI的Message組件。

這是一個封裝了axios的Rest風格的工具類,包擴常用的POST,GET,PUT,DELETE,

在請求處理上使用統一的請求攔截處理。對返回的消息進行攔截預處理,有數據返回數據,沒有返回消息。

import axios from 'axios'
import router from '../router'
import { Message } from 'element-ui';

/*
//封裝網絡請求方法
 */
/**
 * 統一處理網絡請求的響應攔截處理方式,
 */
axios.interceptors.response.use(success => {
        if (success.status && success.status == 200 && success.data.status == 500) {
            Message.error({ message: success.data.msg })
            return;
        }
        if (success.data.msg) {
            Message.success({ message: success.data.msg })
        }
        return success.data;
    }, error => {
        if (error.response.status == 504 || error.response.status == 404) {
            Message.error({ message: '服務器被吃了( ╯□╰ )' })
        } else if (error.response.status == 403) {
            Message.error({ message: '權限不足,請聯系管理員' })
        } else if (error.response.status == 401) {
            Message.error({ message: '尚未登錄,請登錄' })
            router.replace('/');
        } else {
            if (error.response.data.msg) {
                Message.error({ message: error.response.data.msg })
            } else {
                Message.error({ message: '未知錯誤!' })
            }
        }
        return;
    })
    //post請求的封裝K-v形式
let base = '';
export const postKeyValueRequest = (url, params) => {
        return axios({
            method: 'post',
            url: `${base}${url}`,
            data: params,
            transformRequest: [function(data) {
                let ret = ''
                for (let it in data) {
                    ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
                }

                return ret
            }],
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
            }
        });
    }
    //傳遞json的post請求
export const postRequest = (url, params) => {
        return axios({
            method: 'POST',
            url: `${base}${url}`,
            data: params,
        })
    }
    // put請求封裝
export const putRequest = (url, params) => {
        return axios({
            method: 'put',
            url: `${base}${url}`,
            data: params,
        })
    }
    // get請求封裝
export const getRequest = (url, params) => {
        return axios({
            method: 'get',
            url: `${base}${url}`,
            data: params,
        })
    }
    // delete請求封裝
export const deleteRequest = (url, params) => {
    return axios({
        method: 'delete',
        url: `${base}${url}`,
        data: params,
    })
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM