目标
我想使用axios. 参数值是一个字符串类型的变量并且有空格。
问题
似乎axios是以我的后端不理解的格式对参数进行编码。我已经对axios编码进行了研究,它似乎axios将空格编码为 a+而不是%20。
例子
假设您有以下请求:
const whitespace = "white space";
const encodeWhitespace = encodeURI(whitespace);
const noSpace = "no";
axios.get('/api', {
params: {
'foo': 'bar',
'bar': 'hello world',
'space': whitespace,
'encode': 'hello%20world',
'encoded': encodeWhitespace,
'simple': noSpace
}
}
这些参数foo, bar, encode, simple都可以工作并使用正确的数据生成响应。参数space, encoded不会生成正确的数据。请求以 200 成功,但不返回任何数据。
我使用相同的查询在 Postman 中创建了相同的请求,以查看是否GET返回了预期的结果,并且确实如此。我%20在 Postman 中添加了它,它返回得很好。我+在 Postman 中添加了它,它也返回了预期的结果。
题
变量实现可能会出什么问题?如果没有像barparam这样的变量,我就无法做到这一点,因为该值正在传递给一个函数(Redux 操作)。对此的任何想法或想法都会有所帮助。如果需要更多信息,请发表评论。
有只小跳蛙
相关分类