qs是一个流行的查询参数序列化和解析库。可以将一个普通的object序列化成一个查询字符串,或者反过来将一个查询字符串解析成一个object,帮助我们查询字符串解析和序列化字符串。
使用
npm install qs or yarn add qs
//导入
import qs from 'qs'
//序列化
config.data = qs.parse(config.data);
将对象转换为查询字符串
//将对象转换为查询字符串
const params = { name: 'John', age: 30 };
const queryString = qs.stringify(params);
console.log(queryString); // 输出: "name=John&age=30"
将查询字符串解析为对象
const queryString = 'name=John&age=30';
const params = qs.parse(queryString);
console.log(params); // 输出: { name: 'John', age: '30' }
axios中使用
// 请求拦截器
service.interceptors.request.use(
(config: AxiosRequestConfig) => {
const { method, data, headers } = config
removePending(config)
cancel.cancel_request && addPending(config)
if (['post', 'put', 'delete'].includes(method as string)) {
config.data = qs.parse(data) //序列化,将查询字符串解析为对象
}
return config
},
error => {
message.error(error.data.error.message)
return Promise.reject(error.data.error.message)
}
)