我正在尝试使用fetch方法POST一个JSON对象。
根据我的理解,我需要将一个字符串化的对象附加到请求的body中,例如:
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 echo时,我希望能够看到我发送的对象({a: 1, b: 2}
),但这并没有发生- Chrome开发者工具甚至不显示JSON作为请求的一部分,这意味着它没有被发送。
我认为你的问题是
jsfiddle
只能处理form-urlencoded
请求。但是正确的方法是将正确的json
作为请求体传递:使用ES2017的
async/await
支持,这是如何进行POST
JSON数据的方法: