axios配置封装

axios.js

// 这里的@符号等于src目录
import axios from 'axios';
import store from '@/store';
import router from '@/router';
import { Message } from 'view-design';
const { NODE_ENV: env } = process.env;

// 创建axios实例
const axiosInstance = axios.create({
    // baseURL: env === "development" ? "" : serverUrl
    baseURL:'http://********'
});

// request 拦截器
axiosInstance.interceptors.request.use(
    (config) => {
        if (store.state.token) {
            config.headers['Authorization'] = `wruser ${store.state.token}`
        }
        return config;
    },
    (error)=>{
        return Promise.reject(error);
    }
);

// response拦截器
axiosInstance.interceptors.response.use(
    (response)=>{
        return response.data;
    },
    (error)=>{
        switch(error.request.status){
            case 400:
                Message.error(error.request.response);
                break;
            case 401:
                // 授权过期,暂时先跳转到注册页
                if(router.currentRoute.name!=='login'){
                    router.replace()
                }
        }
        if(error.message==="Network Error"){
            Message.error("网络请求错误!");
        }
        return Promise.resolve({code:"error",message:error.message});
    }
);
export default axiosInstance;

function.js

import axios from "@/api/base/axios";

// 存放api
export const url = {
    login: '/api/wrmes/login',
    code: '/api/wrmes/get_capta'
};
// 循环将所有url封装为一个axios对象
export const post = () => {
    let func = {};
    for (let key in url) {
    	// 这里对每一个url进行了封装
    	// 只需要引用import {post} from "src/api/base/function";
    	// 再通过post().login({username:'123456',password:'123456'})访问该api        
    	func[key] = (params = {}) => {
            return axios.post(
                url[key],
                params
            )
        }
    }
    return func;
};
// post最终返回一个key,value对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修罗_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值