ActiveCampaign axios 发送 post 请求返回 422。

3

这是对象和POST请求

let contactObject = {
    contact: {
        email: "jsmith@example.com",
        firstName: "John",
        lastName: "Smith"
    }
};

const options = {
    method: 'POST',
    headers: {
        'Api-Token': `${token}`,
        'content-type': 'application/json',
    },
    data: contactObject,
    url,
};

await axios(options);

这是我收到的回复。
   "status": "error",
"error": {
    "message": "Request failed with status code 422",
    "name": "Error",
    "stack": "Error: Request failed with status code 422\n    at createError (/Users/robert/chatbots/truchat_helper_functions/node_modules/axios/lib/core/createError.js:16:15)\n    at settle (/Users/robert/chatbots/truchat_helper_functions/node_modules/axios/lib/core/settle.js:17:12)\n    at IncomingMessage.handleStreamEnd (/Users/robert/chatbots/truchat_helper_functions/node_modules/axios/lib/adapters/http.js:236:11)\n    at IncomingMessage.emit (events.js:215:7)\n    at endReadableNT (_stream_readable.js:1184:12)\n    at processTicksAndRejections (internal/process/task_queues.js:80:21)",
    "config": {
        "url": "https://successroadacademy.api-us1.com/api/3/contacts",
        "method": "post",
        "data": "{\"contact\":{\"email\":\"jsmith@example.com\",\"firstName\":\"John\",\"lastName\":\"Smith\"}}",
        "headers": {
            "Accept": "application/json, text/plain, */*",
            "Content-Type": "application/json",
            "Api-Token": "APITOKEN",
            "User-Agent": "axios/0.19.2",
            "Content-Length": 80
        },
        "transformRequest": [
            null
        ],
        "transformResponse": [
            null
        ],
        "timeout": 0,
        "xsrfCookieName": "XSRF-TOKEN",
        "xsrfHeaderName": "X-XSRF-TOKEN",
        "maxContentLength": -1
    }
},
"message": "Request failed with status code 422",
"stack": "Error: Request failed with status code 422\n    at createError (/Users/robert/chatbots/truchat_helper_functions/node_modules/axios/lib/core/createError.js:16:15)\n    at settle (/Users/robert/chatbots/truchat_helper_functions/node_modules/axios/lib/core/settle.js:17:12)\n    at IncomingMessage.handleStreamEnd (/Users/robert/chatbots/truchat_helper_functions/node_modules/axios/lib/adapters/http.js:236:11)\n    at IncomingMessage.emit (events.js:215:7)\n    at endReadableNT (_stream_readable.js:1184:12)\n    at processTicksAndRejections (internal/process/task_queues.js:80:21)"

如果有人知道可能是什么问题,请帮忙解决。我尝试了我能想到的所有方法,但无论如何更改数据对象或标题请求,我始终收到相同的响应。

这是 ActiveCampaign API 的链接

https://developers.activecampaign.com/reference#http-methods


你能否在 axios 的响应中进行一些调试。你提供的内容没有显示 api 返回的错误响应。axios(options).then(res => console.log(res)).catch(e => console.log(e.res.data)) - Andrew Nolan
1个回答

1

我在与ActiveCampaign支持团队交流后找到了解决方案,他们的支持非常出色。

const email = req.body.email;
const name = req.body.firstName;
const last = req.body.lastName;
const phone = req.body.phone;

let contactObject = {
    "contact": {
        "email": email,
        "firstName": name,
        "lastName": last,
        "phone": phone
    }
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接