Recientemente desarrollé un nuevo proyecto en el lado de la PC, de 0 a 1, por lo que es necesario encapsular algunas configuraciones básicas, como axios, por eso escribí este artículo para registrarlo, porque cometí un error al encapsular la solicitud de obtención Error ( Los parámetros deben agregarse a los parámetros de la solicitud de obtención (esta es una forma fija de escribir ), así que regístrelo.
Cargue directamente el código:
request.js (el archivo ubicado en el paquete de axios)
import axios from 'axios'
const baseURL = import.meta.env.VITE_APP_BASE_URL
const service = axios.create({
baseURL: baseURL, // url = base url + request url
timeout: 100000, // request timeout
headers:{
"Content-Type": "application/json",
"token": new URLSearchParams(location.search).get('token'),
}
})
//http request 拦截器
service.interceptors.request.use(
config => {
config.data = JSON.stringify(config.data);
//设置请求头
config.headers = {
'Content-Type': 'application/x-www-form-urlencoded'
};
return config;
},
error => {
return Promise.reject(err);
}
);
//http response 拦截器
service.interceptors.response.use(
response => {
const res = response.data
if (res.code !== 000000) {
console.log('接口信息报错', res.message)
return Promise.reject(new Error(res.message || 'Error'))
} else {
return res.data
}
},
error => {
return Promise.reject(error)
}
);
/**
* 封装get方法
* @param url
* @param data
* @returns {Promise}
*/
// 记住get请求中,params是固定的写法,一定要记住这一点
export function get(url, params = {
}) {
return new Promise((resolve, reject) => {
service.get(url, {
params: params
})
.then(response => {
resolve(response.data);
})
.catch(err => {
reject(err)
})
})
}
/**
* 封装post请求
* @param url
* @param data
* @returns {Promise}
*/
export function post(url, data = {
}) {
return new Promise((resolve, reject) => {
service.post(url, data)
.then(response => {
resolve(response.data);
}, err => {
reject(err)
})
})
}
Aprenda mucho de un pozo, recuerde que en la solicitud de obtención, los parámetros son una forma fija de escribir, debe recordar esto .