为了账号安全,请及时绑定邮箱和手机立即绑定

获取:POST json数据

获取:POST json数据

PIPIONE 2019-07-12 16:51:39
获取:POST json数据我试图发布一个JSON对象去取.根据我所能理解的,我需要在请求的主体上附加一个字符串对象,例如:fetch("/echo/json/",{     headers: {       'Accept': 'application/json',       'Content-Type': 'application/json'     },     method: "POST",     body: JSON.stringify({a: 1, b: 2})}).then(function(res){ console.log(res) }).catch(function(res){ console.log(res) })使用时jsfiddle‘s json回声我希望看到我发送的对象({a: 1, b: 2})返回,但这并没有发生-ChromeDevTools甚至没有将JSON显示为请求的一部分,这意味着它没有被发送。
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

在搜索引擎中,我最后讨论了非json使用FETCH发布数据的主题,所以我想添加以下内容。

非JSON您不必使用表单数据。您可以简单地设置Content-Type头到application/x-www-form-urlencoded并使用字符串:

fetch('url here', {
    method: 'POST',
    headers: {'Content-Type':'application/x-www-form-urlencoded'}, // this line is important, if this content-type is not set it wont work
    body: 'foo=bar&blah=1'});

另一种方法body字符串,而不是像我上面所做的那样键入它,是使用库。例如,stringify功能来自query-stringqs包裹。因此,如果使用这个,它看起来就像:

import queryString from 'query-string';fetch('url here', {
    method: 'POST',
    headers: {'Content-Type':'application/x-www-form-urlencoded'}, // this line is important, if this content-type is not set it wont work
    body: queryString.stringify({for:'bar', blah:1}});


查看完整回答
反对 回复 2019-07-12
  • 3 回答
  • 0 关注
  • 330 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信