You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js调用Maximizer API遇JSON读取错误,求解决建议

问题分析与解决建议

核心问题

你的代码未正确处理请求体格式与请求头配置,导致API无法解析请求内容,触发JSON读取错误。

解决步骤

修改请求配置,完成两处关键调整:

  • 使用JSON.stringify()将JavaScript对象格式的payload转换为JSON字符串
  • 在请求头中添加Content-Type: application/json,明确告知API请求体的格式

修改后的完整代码

const token = "abc123_samplefaketoken"
const request = "https://api.maximizer.com/octopus/abEntryRead";
const auth = "Bearer " + token;
const payload = {
    "abEntry": {
        "criteria": {
            "searchQuery": {
                "LastName": {
                    "$EQ": "."
                }
            },
            "top": "15"
        },
        "scope": {
            "fields": {
                "key": "1",
                "type": "1",
                "webSite": "1",
                "displayValue": "1"
            }
        }
    },
    "configuration": {
        "drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "compatibility": {
        "abEntryKey": "2.0"
    }
};

// 调整请求配置:序列化payload + 添加Content-Type头
const maxConnectOptions = { 
    method: "POST", 
    redirect: "follow", 
    headers: { 
        Authorization: auth,
        'Content-Type': 'application/json' // 新增
    }, 
    body: JSON.stringify(payload) // 转换为JSON字符串
};

fetch(request, maxConnectOptions)
    .then((response) => response.json())
    .then((resultset) => console.log(resultset))
    .catch((error) => console.log("Error: " + error));

原因说明

Postman发送JSON请求时,会自动完成两个关键操作:将请求体序列化为JSON字符串,以及设置Content-Type: application/json请求头。但Node.js的fetch API不会自动处理这些——如果直接传入JavaScript对象作为body,它会将其编码为multipart/form-data或application/x-www-form-urlencoded格式,这与API期望的JSON格式不匹配,因此触发了"无法读取JObject"的解析错误。

内容的提问来源于stack exchange,提问作者PatW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 12:27:02