vue项目axios请求的二次封装

request.js文件

import axios from ‘axios’
import { Notify } from ‘vant’

axios.defaults.baseURL = process.env.NODE_ENV === ‘production’ ? ‘http://117.187.84.162:38080/’ : ‘/qxn’;

// axios.defaults.withCredentials = true;
const service = axios.create({
timeout : 30000,
retry: 0 ,// 请求次数,
retryInterval: 1000, // 请求超时后,1s再次请求huanjing
})

service.interceptors.request.use(
config => {
let TOKEN = window.localStorage.Token;
config.headers[“Content-type”] = “application/json;chartset=UTF-8”;
config.headers[“token”] = TOKEN;
return config;
},
error =>{
Notify({
message:“请求超时!”,
type:‘danger’
});
return Promise.reject(error)
}
);

service.interceptors.response.use(
response => {
if (response.status === 200) {
console.log(‘哈哈哈哈哈哈成功咯’)
// Notify({message:“成功咯!”,type:‘success’});
Notify({ type: ‘success’, message: ‘成功咯!’ });
return response.data;
}else {
// return response;
}
},
error => {
if (error.response) {
// console.log(error.response.status)
switch (error.response.status) {
case 400:
Notify({message:“错误请求!”,type:‘danger’});
break;
case 401:
Notify({message:“权限超时,请重新登录!”,type:‘danger’});
break;
case 403:
Notify({message:“未授权,请重新登录!”,type:‘danger’});
break;
case 404:
Notify({message:“请求错误,未找到该资源!”,type:‘danger’});
break;
case 405:
Notify({message:“请求方法未允许!”,type:‘danger’});
break;
case 500:
Notify({message:“服务器端出错!”,type:‘danger’});
break;
case 502:
Notify({message:“网络错误!”,type:‘danger’});
break;
case 504:
Notify({message:“网络超时!”,type:‘danger’});
break;
default:
Notify({message:'连接错误'${error.response.status},type:‘danger’});
}
}else{
Notify({message:“连接到服务器失败!”,type:‘danger’});
}
let errorMessage = JSON.parse(JSON.stringify(error)); // object
// 请求超时,处理
const { config } = error;
if (!config || !config.retry) return Promise.reject(error);
// 重新请求次数
config.retryCount = config.retryCount || 0;
// 请求次数是否上限
if (config.retryCount >= config.retry) {
return Promise.reject(error);
}
config.retryCount += 1;
// 重新发起请求
const back = new Promise(function(resolve) {
setTimeout(() => {
resolve();
}, config.retryInterval || 1);
});
// 返回axios实体
return back.then(() => {
return service(config);
});
}
);

export default service;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

api.js api接口文件

import request from ‘…/util/request’

export function getContTime() {
return request({
url: ‘/QXNZHB/zs/getContTime’,
method: ‘GET’
})
}

在这里插入图片描述

axios请求调用

引入api文件
import {getContTime} from ‘…/…/…/src/api/air’

请求接口
getContTime().then((res) => {
console.log(‘请求成功’)
console.log(res)
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值