// 在main.js中添加全局,getCokie是获取cookie里的csrftoken值,Qs是用于序列化
Vue.prototype.$axios = (ajax) => { axios({ method: ajax.type, url: api + ajax.url, data: Qs.stringify(ajax.data) }).then((response) => { ajax.success(response) }).catch((error) => { console.log(error) // eslint-disable-next-line ajax.fail }) } Vue.prototype.$get = (ajax) => { axios.get(api + ajax.url, { params: ajax.data, headers: { 'X-CSRFToken': getCookie('csrftoken') } }).then((response) => { ajax.success(response) }).catch((error) => { console.log(error) // eslint-disable-next-line ajax.fail }) } Vue.prototype.$delete = (ajax) => { axios.get(api + ajax.url, { params: ajax.data, headers: { 'X-CSRFToken': getCookie('csrftoken') } }).then((response) => { ajax.success(response) }).catch((error) => { console.log(error) // eslint-disable-next-line ajax.fail }) } Vue.prototype.$post = (ajax) => { axios.post(api + ajax.url, Qs.stringify(ajax.data), { headers: { 'X-CSRFToken': getCookie('csrftoken') } }).then((response) => { ajax.success(response) }).catch((error) => { console.log(error) // eslint-disable-next-line ajax.fail }) } Vue.prototype.$put = (ajax) => { axios.post(api + ajax.url, Qs.stringify(ajax.data), { headers: { 'X-CSRFToken': getCookie('csrftoken') } }).then((response) => { ajax.success(response) }).catch((error) => { console.log(error) // eslint-disable-next-line ajax.fail }) }
对应的使用
this.$get({
url: ...,
data:...,
sueccess:(response)=>{},
fail:()=>{}
})