vue 对axios get pust put delete 封装

Posted 西门夜说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 对axios get pust put delete 封装相关的知识,希望对你有一定的参考价值。

 

 axios.js

import axios from \'axios\';
import Qs from \'qs\';
import {Message} from \'element-ui\';


axios.defaults.baseURL = "/api";
// 设置请求超时时间
axios.defaults.timeout = 30000;

// 设置post请求头
axios.defaults.headers.post[\'Content-Type\'] = \'application/json;charset=UTF-8\';

// 请求拦截
axios.interceptors.request.use(config => {
    // 在发送请求之前做些什么 验证token之类的

    return config;
}, error => {
    // 对请求错误做些什么

    Message.error({message: \'请求超时!\'})
    return Promise.error(error);
})

// 响应拦截
axios.interceptors.response.use(response => {
    // 对响应数据做点什么

    return response;
}, error => {
    // 对响应错误做点什么

    return Promise.reject(error);
});


// 封装get方法和post方法

/**
 * get方法,对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function get(url, params) {
    return new Promise((resolve, reject) => {
        axios.get(url, {
            params: params
        }).then(res => {
            resolve(res.data);
            //  Loading.service(true).close();
            //  Message({message: \'请求成功\', type: \'success\'});
        }).catch(err => {
            reject(err.data)
            //  Loading.service(true).close();
            Message({message: \'加载失败\', type: \'error\'});
        })
    });
}

/**
 * post方法,对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function post(url, params) {
    return new Promise((resolve, reject) => {
        axios.post(url, params)
            .then(res => {
                resolve(res.data);
                // Loading.service(true).close();
                //  Message({message: \'请求成功\', type: \'success\'});
            })
            .catch(err => {
                reject(err.data)
                // Loading.service(true).close();
                Message({message: \'加载失败\', type: \'error\'});
            })
    });
}

/**
 * post方法,参数序列化
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function qspost(url, params) {
    return new Promise((resolve, reject) => {
        axios.post(url, Qs.stringify(params))
            .then(res => {
                resolve(res.data);
                //  Loading.service(true).close();
                //  Message({message: \'请求成功\', type: \'success\'});
            })
            .catch(err => {
                reject(err.data)
                // Loading.service(true).close();
                Message({message: \'加载失败\', type: \'error\'});
            })
    });
}


/**
 * put方法,对应put请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function put(url, params) {
    return new Promise((resolve, reject) => {
        axios.put(url, params)
            .then(res => {
                resolve(res.data);
                // Loading.service(true).close();
                //  Message({message: \'请求成功\', type: \'success\'});
            })
            .catch(err => {
                reject(err.data)
                // Loading.service(true).close();
                Message({message: \'加载失败\', type: \'error\'});
            })
    });
}


/**
 * delete
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function deletefn(url, params) {
    return new Promise((resolve, reject) => {
        axios.delete(url, params)
            .then(res => {
                resolve(res.data);
                // Loading.service(true).close();
                //  Message({message: \'请求成功\', type: \'success\'});
            })
            .catch(err => {
                reject(err.data)
                // Loading.service(true).close();
                Message({message: \'加载失败\', type: \'error\'});
            })
    });
}

 

 brand.js

import { get,post,qspost,put,deletefn } from \'../../utils/axios/axios\'



export const getBrandList = data => post("/item/brand/list",data)

export const addBrand = data =>post("/item/brand",data);

Brand.vue

 import {getBrandList,addBrand} from "../../api/item/brand";

  

以上是关于vue 对axios get pust put delete 封装的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js / Vuex + axios 发送多个 PUT 请求

VUE axios

Vue学习-axios

vue axios ajax引擎

vue项目开发api层架构

Vue中 get post 请求方法