vue3,element plus ,axios,qs 字符串拼接
import axios from 'axios';
import { ElMessage } from 'element-plus';
import qs from 'qs'
//qs.stringify(obj)将对象拼接成k=v的形式
axios.defaults.withCredentials = true; //默认带cookie
axios.defaults.headers.post['x-requested-with'] = 'XMLHttpRequest';
axios.defaults.headers.get['x-requested-with'] = 'XMLHttpRequest';
axios.defaults.headers.put['x-requested-with'] = 'XMLHttpRequest';
axios.defaults.headers.delete['x-requested-with'] = 'XMLHttpRequest';
axios.interceptors.response.use(
(response) => {
if (response.config.url === 'http://ldap.inner.youdao.com/profile' && response.data.code === 101) {
window.location.href = `http://ldap.inner.youdao.com/?service=defender-system&backurl=${encodeURIComponent(window.location.href)}`;
}
if (response.data.type) {
if (response.data.type === 'application/x-download') {
return response;
}
} else if (response.data.code === 302) {
window.location.href = `http://ldap.inner.youdao.com/?service=defender-system&backurl=${encodeURIComponent(window.location.href)}`;
} else if (response.data.code === 0 || response.data.errorcode === 0) {
return response;
} else {
let message;
if (response.data.reason) {
message = `${response.data.msg}:${response.data.reason}`;
} else {
message = response.data.msg;
}
ElMessage.error({ message, customClass: 'mzindex' });
return Promise.reject(response);
}
},
(err) => {
if (err.response.status === 504 || err.response.status === 404) {
ElMessage.error({ message: '服务器被吃了(⊙ˍ⊙)', customClass: 'mzindex' });
} else if (err.response.status === 502) {
ElMessage.error({ message: 'bad gateway', customClass: 'mzindex' });
} else {
ElMessage.error({
message: err.response.data.msg,
showClose: true,
customClass: 'mzindex',
});
}
return Promise.reject(err);
},
);
/**
* get方法,对应get请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function get(url, params) {
return new Promise((resolve, reject) => {
axios
.get(url, {
params,
})
.then((res) => {
resolve(res.data);
})
.catch((err) => {
reject(err.data);
});
});
}
/**
* post方法,对应post请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function post(url, params) {
let postUrl=url+"?"+qs.stringify(params)
return new Promise((resolve, reject) => {
axios
.post(postUrl)
.then((res) => {
resolve(res.data);
})
.catch((err) => {
reject(err.data);
});
});
}
/**
* put方法,对应put请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function put(url, params){
let putUrl=url+"?"+qs.stringify(params)
return new Promise((resolve, reject) => {
axios
.put(putUrl)
.then((res) => {
resolve(res.data);
})
.catch((err) => {
reject(err.data);
});
});
}
/**
* delete方法,对应delete请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function deleteData(url, params){
let deleteUrl=url+"?"+qs.stringify(params)
return new Promise((resolve, reject) => {
axios
.delete(deleteUrl)
.then((res) => {
resolve(res.data);
})
.catch((err) => {
reject(err.data);
});
});
}