在请求中如果url包括特殊字符的话,可能会导致接口接收参数失败(例:空格 被转换成 + 号),所以前端一般会对特殊字符进行encode
encodeURI 对一个完整的URI 进行编码,
而encodeURIComponent对URI 的一个组件(单个参数)进行编码。 浏览器get请求
service.interceptors.request.use(config => {
let url = config.url
if (config.method === 'get' && config.params) {
url += '?' // 拼接参数
// 获取所有参数,通过循环 拼接所有参数,encodeURIComponent对参数编码,
Object.keys(config.params).map(key => {
url += `${key}=${encodeURIComponent(config.params[key])}&`
})
url = url.substring(0, url.length - 1) // 删除最后一个&字符
config.params = {} // 参数已经存在于 url中
}
config.url = url
return config
}