vue2的axios封装
时间: 2024-01-17 16:06:00 浏览: 72
以下是一个示例,展示了如何在Vue2中封装axios:
```javascript
// main.js
import Vue from 'vue'
import App from './App.vue'
import axios from 'axios'
// 创建一个axios实例
const instance = axios.create({
baseURL: 'http://api.example.com', // 设置基地址
timeout: 5000 // 设置请求超时时间
})
// 添加请求拦截器
instance.interceptors.request.use(
config => {
// 在发送请求之前做些什么
// 可以在这里添加请求头等操作
return config
},
error => {
// 对请求错误做些什么
return Promise.reject(error)
}
)
// 添加响应拦截器
instance.interceptors.response.use(
response => {
// 对响应数据做些什么
return response.data
},
error => {
// 对响应错误做些什么
return Promise.reject(error)
}
)
// 将axios实例挂载到Vue原型上
Vue.prototype.$http = instance
new Vue({
render: h => h(App),
}).$mount('#app')
```
在上述示例中,我们首先在`main.js`文件中导入了Vue和axios,并创建了一个axios实例。然后,我们可以通过`instance.interceptors.request.use`和`instance.interceptors.response.use`方法来添加请求和响应拦截器。在拦截器中,我们可以对请求进行一些处理,例如添加请求头,对响应进行一些处理,例如处理错误信息等。最后,我们将axios实例挂载到Vue原型上,这样在组件中就可以通过`this.$http`来发送请求了。
请注意,上述示例仅为演示目的,实际的封装可能会根据具体需求有所不同。
阅读全文