我正在尝试使用 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 显示为请求的一部分,这意味着它没有被发送。
原文由 Razor 发布,翻译遵循 CC BY-SA 4.0 许可协议
借助 ES2017
async/await
支持,这是POST
JSON 有效负载的方法:不能使用 ES2017? 使用承诺查看@vp_art 的答案
然而,问题是询问由 长期修复的 chrome 错误引起的问题。
原始答案如下。
这是真正的问题,它是 chrome devtools 的一个错误,已在 Chrome 46 中修复。
该代码工作正常 - 它正确地发布 JSON,它只是看不到。
这不起作用,因为这不是 JSfiddle 的 echo 的正确格式。
正确的代码 是:
对于接受 JSON 有效负载 的端点,原始代码是正确的