听起来您想要与查询字符串相同的格式,因此导入/需要一个像https://www.npmjs.com/package/query-string这样的包,它似乎不依赖任何浏览器功能并且具有 stringify 方法:
queryString.stringify({
foo: 'bar',
nested: JSON.stringify({
unicorn: 'cake',
}),
});
//=> foo=bar&nested=%7B%22unicorn%22%3A%22cake%22%7D
或者,您可以只使用其源代码的相关部分,尽管这仍然受其许可的约束:
function toQueryString(obj) {
return obj
? Object.keys(obj)
.sort()
.map(function (key) {
var val = obj[key];
if (Array.isArray(val)) {
return val
.sort()
.map(function (val2) {
return encodeURIComponent(key) + '=' + encodeURIComponent(val2);
})
.join('&');
}
return encodeURIComponent(key) + '=' + encodeURIComponent(val);
})
.join('&')
: '';
}
然后,您可以在body
参数中使用返回值fetch
:
fetch(url, {
method: 'post',
body: toQueryString({ token: this.state.token }),
});