使用node-fetch调用Zabbix API时出现JSON解析错误求助
问题解决:Fetch调用Zabbix API报JSON解析错误
你的问题出在Fetch请求的参数配置上:
- Fetch API的POST请求体参数是
body,不是你写的data - 直接传入JSON对象无法被服务器正确解析,需要用
JSON.stringify()把对象转为JSON字符串
修正后的代码如下:
fetch( "http://localhost:8080/api_jsonrpc.php", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({"jsonrpc":"2.0","method":"apiinfo.version","params":[],"id":1}), } ) .then((response) => { return response.json(); }) .then((data)=>{ console.log(data) }) .catch(err => console.error('请求错误:', err))
为什么curl能成功?
curl的-d参数会自动把传入的JSON字符串作为合法请求体发送,而你的原Fetch代码既用了错误的字段名data,又没有对对象做序列化处理,导致服务器收到的内容不是合法JSON格式,因此触发了解析错误。
内容的提问来源于stack exchange,提问作者Grimalkin
相关产品推荐
相关产品推荐

