uniapp vue3 接口请求带token封装
时间: 2023-10-09 16:14:35 浏览: 218
可以在 `uni-app` 中使用 `axios` 库进行接口请求,并且可以在请求头中添加 `token`。
首先需要安装 `axios` 库:
```bash
npm install axios --save
```
然后在需要使用的地方引入:
```javascript
import axios from 'axios'
```
下面是一个基本的 `axios` 请求封装:
```javascript
const request = axios.create({ // 创建 axios 实例
baseURL: 'https://api.example.com', // 设置请求的 base url
timeout: 5000, // 设置请求超时时间
})
// 请求拦截器
request.interceptors.request.use(
config => {
const token = uni.getStorageSync('token') // 从本地缓存中获取 token
if (token) {
// 如果 token 存在则在请求头中添加 token
config.headers.Authorization = `Bearer ${token}`
}
return config
},
error => {
console.log(error)
return Promise.reject(error)
}
)
// 响应拦截器
request.interceptors.response.use(
response => {
return response.data
},
error => {
console.log(error)
return Promise.reject(error)
}
)
export default request
```
在上面的代码中,我们创建了一个 `axios` 实例,并设置了请求的 `baseURL` 和超时时间。我们还添加了一个请求拦截器,在请求头中添加了 `token`。可以看到,我们使用了 `uni.getStorageSync('token')` 方法从本地缓存中获取了 `token`。在响应拦截器中,我们只返回了响应数据的 `data` 属性。
使用封装好的 `axios` 请求:
```javascript
import request from '@/utils/request'
request.get('/example').then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
```
这样我们就可以在 `uni-app` 中使用 `axios` 库进行接口请求,并且在请求头中添加 `token` 了。
阅读全文