封装request

1,导入axios element-ui nprogress

import axios from "axios";
import { Message } from "element-ui";
import NProgress from "nprogress";
import 'nprogress/nprogress.css'
NProgress.configure({ showSpinner: false })

2,创建axios实例

const request = axios.create({
    baseURL: 'http://dida100.com:8888',///请求的基础地址(如果请求的地址省略了域名,就使用该域名)
    timeout: 5000,//请求时间5秒
})

3,请求拦截

request.interceptors.request.use(function (config) {
    //显示加载提示
    NProgress.start();
    //添加token
    config.headers.Authorization = "Bearer " + localStorage.getItem("token");
    return config;
})

4,拦截响应

request.interceptors.response.use(
    function (response) {
        //移除加载提示
        NProgress.done();
       //如果code为1报错
        if(response.data.code===1){
            Message({
                message: response.data.msg,
                type: 'warning'
              });
        }
        //返回成功的数据
        Promise.resolve(response);
        return response;
    },
    function (err) {
        //移除加载提示
        NProgress.done();
        if(err.response.status==401){
            Message({
                message: '当前用户状态没有权限,请先登录',
                type: 'warning'
              });
        }else if(err.response.status==404){
            Message({
                message: '请求地址找不到',
                type: 'warning'
              });
        }else if(err.response.status==500||err.response.status==505){
            Message({
                message: '服务器正忙',
                type: 'warning'
              });
        }else if(err.response.status==0){
            Message({
                message: '当前离线状态,请检查网络',
                type: 'warning'
              });
        }else{
            Message({
                message: '网络请求发送错误',
                type: 'warning'
              });
        }
        //返回错误
        Promise.reject(err)
    }
)

5,导出request

export default request;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值