如何在fetch中发送表单数据,其中值是字符串?

时间:2016-11-20 21:12:18

标签: javascript isomorphic-fetch-api

我正在尝试PUT以下数据:{value: false}。我正在使用isomorphic-fetch并发送以下内容:JSON.stringify({value: false})。问题是服务器期望所有值都是字符串。我尝试使用FormData并发送它,但服务器由于某种原因不理解。

我最好尝试在JSON.stringify上使用替换器,将所有值输出为字符串?或者有没有办法让FormData返回NVP,我发送的是什么?只是寻找首选方法的片段。

2 个答案:

答案 0 :(得分:1)

您可以在字符串化之前浏览要传递的对象中的所有值,并在它们上调用toString()。

答案 1 :(得分:0)

我决定只使用URLSearchParams()并避免在使用toString时处理null和数组。

let qs = new URLSearchParams();

for (let i in data) qs.append(i, data[i]);

const result = qs.toString();

或者wish-js-have-better-immutable-objects:

const result = Object.keys(data).reduce((p, c) => {
  p.append(c, data[c]);

  return p;
}, new URLSearchParams()).toString();