uniapp中的uni.request跟uni.addInterceptor怎么使用
时间: 2023-08-17 22:11:08 浏览: 237
uni-app 请求拦截器
在Uni-app中,你可以使用`uni.request`方法发送网络请求,并使用`uni.addInterceptor`方法添加拦截器来对请求进行拦截和处理。下面是一个示例:
1. 在`main.js`文件中引入`uni.request`方法和`uni.addInterceptor`方法:
```javascript
import Vue from 'vue'
import App from './App'
Vue.config.productionTip = false
Vue.prototype.$http = uni.request
Vue.prototype.$addInterceptor = uni.addInterceptor
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
```
2. 在需要使用的页面中,使用`uni.addInterceptor`方法添加拦截器:
```javascript
export default {
methods: {
requestInterceptor() {
// 添加请求拦截器
this.$addInterceptor('request', (config) => {
// 在发送请求之前可以对请求参数进行处理
console.log('请求拦截器 - 请求参数:', config)
return config
})
// 添加响应拦截器
this.$addInterceptor('response', (response) => {
// 在接收到响应数据之后可以对数据进行处理
console.log('响应拦截器 - 响应数据:', response)
return response
})
},
removeInterceptor() {
// 移除拦截器
this.$addInterceptor('request', undefined)
this.$addInterceptor('response', undefined)
}
},
mounted() {
this.requestInterceptor()
// 发起请求
this.$http({
url: 'https://api.example.com',
method: 'GET',
data: {
// 请求参数
},
success: (res) => {
// 请求成功回调
console.log('请求成功:', res)
},
fail: (err) => {
// 请求失败回调
console.log('请求失败:', err)
}
})
// 移除拦截器
this.removeInterceptor()
}
}
```
在示例中,通过`this.$addInterceptor`方法添加请求拦截器和响应拦截器,可以在拦截器内部对请求和响应进行处理。你可以根据自己的需求在拦截器中对请求和响应进行操作。注意,在不需要拦截器的时候,可以使用`this.$addInterceptor`方法将拦截器设置为`undefined`来移除拦截器。
阅读全文