无法验证提交的资源:Mailchimp 状态 400

The Resource submitted could not be validated: Mailchimp Status 400

我一直在尝试制作一个简单的时事通讯注册表单,我从用户那里获取基本详细信息并使用 API 将该数据发送到 Mailchimp。 我在发送 POST HTTPS 请求时遇到问题。尝试阅读不同的答案但无法解决问题。

这是问题的屏幕截图。

代码:

app.post("/", function (req, res) {
    const firstName = req.body.fname;
    const lastName = req.body.lname;
    const email = req.body.email;
    const data = {
        members: [
            {
                email_address : email,
                status: "subscribed",
                merge_fields: {
                    FIRSTNAME: firstName,
                    LASTNAME: lastName
                }
            }
        ]
    };
    var jsonDATA = JSON.stringify(data);

    const url = "https://us1.api.mailchimp.com/3.0/lists/<My_LIST_ID>/members/";  //Removed List Id for now to post Question. 
    const options = {
        method: "POST",
        auth: "pranshukas:MY_API_KEY"  //Removed API_KEY to post the Question 
    }


    const request = https.request(url, options, function (response) {
        response.on("data", function (data) {
            console.log(JSON.parse(data));
        })
    });

    request.write(jsonDATA);
    request.end();
});

我也尝试使用 POSTMAN,我能够成功地将请求发送到服务器并添加详细信息。但是当我在本地服务器上实施时遇到问题。

请帮帮我,我知道我在发出 post HTTPS 请求时犯了一些错误,但卡在了哪里。

您的电子邮件地址输入似乎有问题,电子邮件地址字段为空白,应该用电子邮件地址填充。

此外,我认为您可以从 URL

中删除群组名称(成员)
const url = "https://us1.api.mailchimp.com/3.0/lists/<My_LIST_ID>/";

作为建议,我认为你应该添加一个失败路由,以防失败。

举个例子: 您可以为成功和失败设置两个不同的routes/pages。
您可以在拥有此路由后将其添加到 const 请求匿名函数中。

if(response.statusCode === 200) {
  res.sendFile(__dirname + "/success.html");
} else {
  res.sendFile(__dirname + "/failure.html");
}