记录如何快速封装一个axios最简单的功能,然后全局挂载直接使用。
分三个简单的步骤: 前提:你下载了axios。如果没有下载的输入这个指令下载一下
npm install axios -s
第一步:
在utils文件夹内创建一个service.js组件把这一堆代码直接复制进去。
import axios from "axios";
import { Message } from 'element-ui';
const service=axios.create({
baseURL:"http://localhost:8001",
timeout:5000,
})
service.interceptors.request.use(config => {
config.headers['token'] = Vue.cookie.get('token')
return config
}, error => {
return Promise.reject(error)
})
service.interceptors.response.use((response)=>{
const res=response.data
return res
},(error)=>{
Message({
type:"error",
message:error.message
})
return Promise.reject(error)
})
export default service
第二步:
在utils中创建http.js组件把这代码复制进去。
import service from './service'
const http ={
get(url,params){
const config = {
method: 'get',
url:url
}
if(params) config.params = params
return service(config)
},
post(url,params){
const config = {
method: 'post',
url:url
}
if(params) config.data = params
return service(config)
},
}
export default http
第三步:
在main.js文件内引入 这里是引入了封装后的请求,然后挂载到全局axios上,这样我们就可以直接this.$axios来发请求了
import http from "./utils/http";
Vue.prototype.$axios = http
最后:可以发请求了
格式是一样的,就换个get和post就行了,很简单
get请求
this.$axios.get('/login', {
username: 'admin',
password: '123456',
}).then(res => {
console.log(res, '返回数据');
}).catch(error => {
console.log(error, '请求失败');
})
post请求
this.$axios.post('/login', {
username: 'admin',
password: '123456',
}).then(res => {
console.log(res, '返回数据');
}).catch(error => {
console.log(error, '请求失败');
})
没有参数就不填第二个参数就行了
this.$axios.post('/login').then(res => {
console.log(res, '返回数据');
}).catch(error => {
console.log(error, '请求失败');
})
|