【发布时间】:2019-01-26 20:09:27
【问题描述】:
以下面的 Axios 为例:
axios.post(this.reportURL, reportData, {
params: {
param1: paramValue1,
param2: paramValue2
},
});
如何使用 fetch API 做同样的事情?我看到参数是这样完成的:
fetch(this.reportURL, {
method: "POST",
body: "param1=paramValue1¶m2=paramValue2",
headers:
{
"Content-Type": "application/x-www-form-urlencoded"
}
})
由于使用了 body 键来存储参数,我是否需要序列化整个 reportData 对象并将其连接到现有参数?
我不明白为什么 Fetch API 使用正文键作为参数。
此外,这不是我自己的 API,我无法更改预期的 POST 请求。
【问题讨论】:
-
除非我误读了 axios 文档,否则它们是不一样的。第一个,将这些参数附加为 URL 参数,即
example.com?p1=foo&p2=bar。第二个会将正文附加为请求的实际正文,而不是 URL 的一部分。你尝试做什么。 -
您不能
extract从reportData 中获取您需要的部分并创建您自己的对象以传递给fetch?你是什么意思你不能改变 POST 请求? -
@zero298 我正在尝试两者,因为 API 需要参数以及 JSON 数据。
-
@Akrion 我可以创建自己的对象,我想我想知道您的建议是否确实是正确的方法。
标签: javascript fetch axios