是否可以编写拦截器或转换请求URI以将URI路径参数/查询参数字符串编码为UTF-8?
我可以使用encodedUriComponent
方法对字符串进行编码,并按如下所示构造URI,例如,如果用户输入userid
作为"!@#$%^&*()"
。
const id = encodeURIComponent(userid);
const response = await axios.get('https://users/api/' + id)
但是我希望对所有axios API调用都在一个地方进行。尽管transformrequest
是一个可以拦截的地方,但我不确定如何解析URI路径或查询字符串参数。
const instance = axios.create({
baseURL: 'api-url.com',
transformRequest: [
(data, headers) => {
const encryptedString = encryptPayload(JSON.stringify(data));
data = {
SecretStuff: encryptedString,
};
return JSON.stringify(data);
},
],
});