【问题标题】:Cannot make axios post request in Node.js to an API endpoint not owned by me无法在 Node.js 中向不属于我的 API 端点发出 axios post 请求
【发布时间】:2022-12-21 01:00:34
【问题描述】:

有网站 https://cebcare.ceb.lk/Incognito/DemandMgmtSchedule,在那里我可以看到一个 API 调用 https://cebcare.ceb.lk/Incognito/GetLoadSheddingEventsStartTimeEndTime 作为表单数据。

我尝试使用 axios 将发布请求发送到 Node.js 中的上述端点,但我收到错误 AxiosError: unable to verify the first certificatecode: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'

然后我看到有2个HeaderRequestVerificationTokenCookie。我抓住了它们并做了一个 Postman 请求并得到了 200 的响应。但是在 Node.js 中,当我喜欢


    const data = {
        StartTime: startDate,
        EndTime: endDate
    }

 const response = await axios.post(URL, data,{
            'Content-Type':'multipart/form-data',
            Cookie: '.AspNetCore.Antiforgery.ThOcTlhnrMo=CfDJ8Nr2EC612OFAjHvozOYXtlRQE9n05fuSOD0jEvKY0unmx8QyMYxdCfmotrhzVIKzurnhpkY_MtfAP9cmpR11u8rzt7_xz4IkuWMURwfelg7ymSJ8GaksLVwEgbMIkEDfrvjb5II6EzzTaLA5RiXRDXU',
            RequestVerificationToken: 'CfDJ8Nr2EC612OFAjHvozOYXtlRBtAUjb36TUpOhI0yuLADjcckB_h1xKJWHDwl0MrqyE4_4pU_YXUkeh5uI66UBXedMcMmihENJ5hpfW_vBgNWZJ-JtliiE4UYvxNJCvvhmGvIWSKWeeqx-llCxrPio9Tw'
        });

我得到与上面相同的错误

有没有办法来解决这个问题。或者以某种方式绕过CookieRequestVerificationToken。或者我可以硬编码这两个值并发送请求吗?

编辑在查看 linkedin 帖子后,我做了以下操作

const httpsAgent = new https.Agent({ rejectUnauthorized: false });

        const response = await axios.post(URL, data,{
            httpsAgent,
            'Content-Type':'multipart/form-data',
            Cookie: '.AspNetCore.Antiforgery.ThOcTlhnrMo=CfDJ8Nr2EC612OFAjHvozOYXtlRQE9n05fuSOD0jEvKY0unmx8QyMYxdCfmotrhzVIKzurnhpkY_MtfAP9cmpR11u8rzt7_xz4IkuWMURwfelg7ymSJ8GaksLVwEgbMIkEDfrvjb5II6EzzTaLA5RiXRDXU',
            RequestVerificationToken: 'CfDJ8Nr2EC612OFAjHvozOYXtlRBtAUjb36TUpOhI0yuLADjcckB_h1xKJWHDwl0MrqyE4_4pU_YXUkeh5uI66UBXedMcMmihENJ5hpfW_vBgNWZJ-JtliiE4UYvxNJCvvhmGvIWSKWeeqx-llCxrPio9Tw'
        });

但现在我得到了 Bad Request 400。但是在邮递员中,我得到了相同的 CookieRequestVerificationToken 的结果

【问题讨论】:

标签: javascript node.js http cookies axios


【解决方案1】:

axios post 函数的第三个参数采用“Options”对象——至于你传递标题的情况,你应该这样写:

{ 
   headers: {
                'Content-Type:'multipart/form-data',
                Cookie: "",
                RequestVerificationToken: ""
            } 
}

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    相关资源
    最近更新 更多