首页 > 解决方案 > 当我在 Postman 中测试时,AWS Lambda 函数可以使用,但是当我尝试在我的 ReactJS 中实现时,我得到状态码 500

问题描述

我使用 ReactJS 尝试使用 AWS Lambda 和 SES 创建联系表单。我正在按照本指南进行 AWS 设置。当我使用邮递员发送我的 json 文件时,我没有问题状态 200 并且电子邮件发送,太棒了!然后我尝试在我的 React 文件中实现它,但我遇到了问题。尽管具有相同的 API 端点。

function post(url, body, callback) {
      var req = new XMLHttpRequest();
      req.open("POST", url, true);
      req.setRequestHeader("Content-Type", "application/json");
      req.addEventListener("load", function () {
        if (req.status < 400) {
          callback(null, JSON.parse(req.responseText));
        } else {
          callback(new Error("Request failed: " + req.statusText));
        }
      });
      req.send(JSON.stringify(body));
    }
const handleSubmit = (e) => {
      e.preventDefault();
      console.log(this.state.form);
      post(url, this.state.form, function (err, res) {
        if (err) {
          return alert(err);
        }
        alert("success");
      });
    };

我从 AWS 得到的回复:

{
message: "Missing Authentication Token"
}

我已经尝试了这些步骤AWS 缺少令牌的课程

邮差

我已经检查了 url 1000 次,除非我遗漏了什么,否则它是正确的。调用 URL:https ://EXAMPLE.execute-api.us-east-1.amazonaws.com/prod/email/send

也尝试了这里的一切

不知道我有什么问题以及为什么邮递员工作但我的代码没有任何帮助将不胜感激。

标签: reactjsamazon-web-servicespostaws-lambdaaws-api-gateway

解决方案


尝试这个:

req.withCredentials = true;

参考:这里


推荐阅读