Vue axios拦截器 qs序列化 FormData配置
/*
* @Description: 拦截器
* @Version: 1.0
* @Autor: Nanke_南柯
* @Date: 2020-09-04 09:07:31
* @LastEditors: Nanke_南柯
* @LastEditTime: 2020-10-21 16:24:27
*/
import axios from 'axios'
import {
Message
} from 'element-ui'
import qs from 'qs'
let timeout = 8000;
// 创建一个axios实例
const service = axios.create({
baseURL: process.env.VUE_APP_URL,
timeout: timeout,
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
}
})
let mark = 'API_ONE';//区分请求哪一个域名
// 请求拦截器
service.interceptors.request.use(
config => {
if (config.requestBaseUrl === 'one') { // API 志豪
config.baseURL = process.env.VUE_APP_URL
mark = 'API_ONE'
}
if (config.requestBaseUrl === 'two') { // API 大屏
config.baseURL = process.env.VUE_APP_URL2
mark = 'API_TWO'
}
// 请求前
if (config.method === 'post') {
config.data = qs.stringify(config.data)
}
return config
},
error => {
// 做一些请求错误
return Promise.reject(error)
}
)
// 响应拦截器
service.interceptors.response.use(
/**
*通过自定义代码确定请求状态*/
response => {
const res = response.data
if (mark === 'API_ONE') {
if (res.code != 0) {
Message({
message: res.msg || '后台异常',
type: 'error',
duration: 5 * 1000
});
return Promise.reject(new Error(res.message || 'Error'))
} else {
return res
}
} else {
if (res.Code === "0") {
Message({
message: res.Msg || '后台异常',
type: 'error',
duration: 5 * 1000
});
return Promise.reject(new Error('Error'))
} else {
return res
}
}
},
error => {
const ISture = error.message.indexOf('500') == -1
if (ISture) {
Message({
message: `网络超时,请求时间大于${timeout / 1000}秒未成功响应,请刷新重试`,
type: 'error',
duration: 6 * 1000
});
} else {
Message({
message: '服务器返回:500错误',
type: 'error',
duration: 5000
})
}
return Promise.reject(error)
}
)
export default service
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗