Node.js报错:请求体包含无效JSON,但JSON格式实际有效
解决「The request body contains invalid JSON」错误
你的问题出在请求体传递的是JavaScript对象而非JSON字符串。浏览器的fetch API(或同类HTTP客户端)不会自动将JS对象序列化为JSON,而是会把对象转为[object Object]这类无效的JSON格式字符串,导致服务器报错。
修正方案:
直接传递JSON字符串作为请求体,或者将JS对象通过JSON.stringify()转为JSON字符串:
方案1:直接使用JSON字符串(无需JSON.parse)
var formdataStr = '{"content":"this is a json sir"}'; console.log(JSON.parse(formdataStr)); // 仅用于验证结构,请求体传原字符串 var requestOptions = { method: 'DELETE', body: formdataStr, headers: myHeaders, redirect: 'follow' };
方案2:先定义对象,再序列化为JSON字符串
var formdata = { content: "this is a json sir" }; console.log(formdata); var requestOptions = { method: 'DELETE', body: JSON.stringify(formdata), // 关键:将对象转为JSON字符串 headers: myHeaders, redirect: 'follow' };
额外注意:
确保请求头中包含Content-Type: application/json,告诉服务器请求体是JSON格式:
// 给myHeaders添加Content-Type myHeaders.append('Content-Type', 'application/json');
内容的提问来源于stack exchange,提问作者Esa Age
相关产品推荐
相关产品推荐

