获取:POST json数据

我正在尝试使用fetch发布 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的json回显时,我希望看到我已经发送{a: 1, b: 2}的对象,但这不会发生-chrome devtools甚至不将JSON显示为请求的一部分,这意味着它没有被发送。

2020/03/12 16:50:16

这对某人可能有用:

我遇到的问题是未按我的要求发送formdata

在我的情况下,是以下标头的组合也导致了问题和错误的Content-Type。

因此,我随请求发送了这两个标头,而当我删除了有效的标头时,它没有发送formdata。

"X-Prototype-Version" : "1.6.1",
"X-Requested-With" : "XMLHttpRequest"

还有其他答案表明Content-Type标头需要正确。

对于我的请求,正确的Content-Type标头是:

“内容类型”:“应用程序/ x-www-form-urlencoded; charset = UTF-8”

因此,如果您的表单数据未附加到请求中,那么最重要的是,它可能是您的标头。尝试将标题最小化,然后尝试将它们一个接一个地添加,以查看问题是否得到解决。