我在一个js文件里复写了axios的四个方法,写到这我迷惑了,因为在调用的时候不管请求成功还是失败,回调的函数我也不能写成复用的,我需要针对不同调用在回调里进行不同的处理,在此请教一下各位大 神,该怎么写?
import axios from 'axios'
import { Message } from 'element-ui'
// axios请求超时时间
axios.defaults.timeout = 10000
// 允许跨域携带cookie信息
axios.defaults.withCredentials = true
// axios发送数据时使用json格式
// axios.defaults.transformRequest = data => JSON.stringify(data);
// 发送数据前进行json格式化
axios.defaults.headers['Content-Type'] = 'application/json'
let http = {
/**
* axios 异步请求封装方法
* @param {路径} url String
* @param {参数} params Object
**/
get: function(url, data) {
axios({
url: url,
method: 'get',
params: data
}).then(res => {
if (res.data.code == 200) {
Message({
message: res.data.message,
showClose: true,
type: 'success',
duration: 1500
})
} else {
Message({
message: res.data.status + res.data.message,
showClose: true,
type: 'warning',
duration: 1500
})
}
}).catch(err => {
console.log(err)
})
},
/**
* axios 异步请求封装方法
* @param {路径} url String
* @param {参数} data Object,请求体
**/
post: function(url, data) {
axios({
url: url,
method: 'post',
data: data
}).then(res => {
if (res.data.code == 200) {
Message({
message: res.data.message,
showClose: true,
type: 'success',
duration: 1500
})
} else {
Message({
message: res.data.status + res.data.message,
showClose: true,
type: 'warning',
duration: 1500
})
}
}).catch(err => {
console.log(err)
})
},
/**
* axios 异步请求封装方法
* @param {路径} url String,一般将id拼在url后
* @param {参数} data Object,请求体
**/
put: function(url, data) {
axios({
url: url,
method: 'put',
data: data
}).then(res => {
if (res.data.code == 200) {
Message({
message: res.data.message,
showClose: true,
type: 'success',
duration: 1500
})
} else {
Message({
message: res.data.status + res.data.message,
showClose: true,
type: 'warning',
duration: 1500
})
}
}).catch(err => {
console.log(err)
})
},
/**
* axios 异步请求封装方法
* @param {路径} url String,一般将id拼在url后
* @param {参数} params Object,一般不使用params方式传递id值
**/
delete: function(url, id) {
axios({
url: url,
method: 'delete',
params: id
}).then(res => {
if (res.data.code == 200) {
Message({
message: res.data.message,
showClose: true,
type: 'success',
duration: 1500
})
} else {
Message({
message: res.data.status + res.data.message,
showClose: true,
type: 'warning',
duration: 1500
})
}
}).catch(err => {
console.log(err)
})
}
}
export default http