ts axios请求拦截器中对get请求的参数全部进行URL编码
时间: 2023-05-28 19:04:22 浏览: 220
axios使用拦截器统一处理所有的http请求的方法
可以通过在请求拦截器中对请求的config参数进行修改来实现对get请求参数的URL编码,具体实现如下:
```javascript
import axios from 'axios'
// 创建axios实例
const instance = axios.create({
baseURL: 'http://localhost:3000',
timeout: 5000
})
// 请求拦截器
instance.interceptors.request.use(config => {
// 对get请求的参数进行URL编码
if (config.method === 'get') {
config.params = encodeURI(config.params)
}
return config
}, error => {
return Promise.reject(error)
})
// 发送get请求
instance.get('/api/data', {
params: {
name: '张三',
age: 20,
address: '北京市朝阳区'
}
}).then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
```
在上面的代码中,我们通过判断请求方法是否为get来对get请求的参数进行URL编码,具体实现是通过对config.params进行encodeURI编码来实现的。
需要注意的是,encodeURI只能对字符串进行编码,如果get请求的参数中包含了对象或数组等复杂类型,还需要进行进一步的处理。
阅读全文