shuinichang_/.history/src/utils/request_20231213094310.js

77 lines
2.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 封装axios用于发送请求 */
import axios from 'axios'
import { Message } from 'element-ui'; // 请确保你的项目中已经安装了 Element UI
const request = axios.create({
baseURL: '', // 设置基地址,博主这个请求跨域了因此我设置了代理服务器,因此基地址才这么短
timeout: 5000 // 请求超时当5s没有响应就会结束请求
})
// 添加请求拦截器一下内容是axios的拦截器可以不用写
request.interceptors.request.use(
function (config) {
// 在发送请求之前做些什么
return config
},
function (error) {
// 对请求错误做些什么
return Promise.reject(error)
}
)
// 添加响应拦截器
request.interceptors.response.use(
function (response) {
// 对响应数据做点什么
return response.data
},
function (error) {
// 对响应错误做点什么
console.log(error);
return Promise.reject(error)
}
)
export default request
// axios.js
const instance = axios.create({
baseURL: 'https://api.example.com', // 设置你的API基础URL
});
// 添加一个响应拦截器
instance.interceptors.response.use(
(response) => {
// 如果请求成功,直接返回响应数据
return response.data;
},
(error) => {
// 如果请求失败,处理错误信息
if (error.response) {
// 请求已发出,但服务器响应状态码不在 2xx 范围内
console.error('Error status:', error.response.status);
console.error('Error data:', error.response.data);
console.error('Error headers:', error.response.headers);
// 提示错误信息
Message.error(`请求错误:${error.response.status}`);
} else if (error.request) {
// 请求被发出但未收到响应
console.error('No response received:', error.request);
// 提示错误信息
Message.error('网络错误,请稍后重试');
} else {
// 设置请求时发生了一些错误
console.error('Error:', error.message);
// 提示错误信息
Message.error('请求失败,请稍后重试');
}
// 返回一个带有错误信息的 Promise 对象
return Promise.reject(error);
}
);