为什么AWS Lambda,API网关返回CORS错误

唐·史蒂芬妮

我知道这个问题已经在网络上的很多帖子中讨论了,我想我都尝试过了,但是我的本地React应用仍然收到403 CORS错误。

部分来自开发工具的标题:

#GENERAL:
Request URL: https://<myGatewayApiUrl>.amazonaws.com/dev/api/byid/1/129
Request Method: OPTIONS
Status Code: 403

#RESPONSE HEADERS
access-control-allow-headers: Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token
access-control-allow-methods: GET,OPTIONS
access-control-allow-origin: *
content-length: 42
content-type: application/json

我一直在API网关中设置Enable CORS,但是我遇到了一个get方法的错误Add Access-Control-Allow-Origin Integration Response Header Mapping to GET method-> invalid response status code specified-但是设置了OPTIONS标头,Access-Control-Allow-Origin却设置了GET标头

我正在使用express和cors软件包,这是我的API index.js文件中的摘录:

const app = express();

app.use(cors());
app.options('*', cors());

这是React应用程序的请求代码:

export const getRecordById = async (userId, id, token) => {
  try {
    const response = await axios.get(
      process.env.REACT_APP_API_URL + `/byid/${userId}/${id}`,
      {
        headers: {
          Authorization: `Bearer ${token}`,
          'Content-Type': 'application/json',
        },
      }
    );
    return response.data;
  } catch (error) {
    console.log('ERROR', error);
    return error;
  }
};

这是我来自Lambda API的响应代码:

getById: asyncHandler(async (req, res, next) => {
    const { user, id } = req.params;
    const result = await recordsService.getRecordById(user, id);

    res.set({
      'content-type': 'application/json',
      'Access-Control-Allow-Origin': '*',
    });

    if (!result) {
      res.status(400).json({
        error: true,
        message: 'get record by ID action failed',
        data: {},
      });
    }
    res.status(200).json({
      error: false,
      message: 'successful record retrieval',
      data: {
        record: result,
      },
    });
  }),

另外,我将我的serverless.yml文件http事件设置为:(据我了解,cors: true应该处理预检请求)

- http:
    path: /api/records/byid/{user}/{id}
    method: GET
    cors: true

我花了太多时间试图解决这个问题。它一定是简单而愚蠢的东西,我使用res.set()得当吗?一切看起来都正确,我知道我丢失了一些东西。谢谢

hvaughan3

当默认情况下未找到URL时,API Gateway会拒绝调用并显示CORS错误。

看起来Axios缺少/records请求URL中位。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWS Lambda + API网关POST错误

来自分类Dev

AWS Lambda + API网关POST错误

来自分类Dev

AWS API网关+ SQS + Lambda +将响应从Lambda返回到API

来自分类Dev

AWS Lambda网关API给出错误消息

来自分类Dev

从AWS API网关执行Lambda的脚本权限

来自分类Dev

通过AWS Lambda / API网关返回JSONP

来自分类Dev

为什么我的AWS ECS任务需要docker api 1.18?

来自分类Dev

Repl.it与AWS Lambda + API网关

来自分类Dev

为什么AWS Lambda调用客户端错误地返回ClientExecutionTimeoutException?

来自分类Dev

如何使用AWS_PROXY模式通过API网关和CloudFront通过AWS Lambda返回二进制内容?

来自分类Dev

为什么在AWS Lambda上bcryptjs的速度比本地docker慢?

来自分类Dev

抖动网站中的XMLHttpRequest错误[启用CORS AWS API网关]

来自分类Dev

AWS Lambda-在lambda函数中获取API网关路径

来自分类Dev

为什么此AWS Lambda会导致错误:警告:回调/响应已传递

来自分类Dev

AWS Lambda HTTP API网关集成无法实现CORS

来自分类Dev

为什么settimeout在我的AWS Lambda中导致502?

来自分类Dev

为什么AWS Lambda函数从后端返回不同的响应值?

来自分类Dev

为什么我的AWS Lambda函数返回null?(Python代码)

来自分类Dev

AWS LAMBDA api网关错误“格式错误的Lambda代理响应”状态错误502

来自分类Dev

AWS SQS + API网关+ Lambda + DB

来自分类Dev

关于API网关URL错误(SES,API网关,Lambda与javascript / html集成)有什么想法吗?

来自分类Dev

AWS API网关+ SQS + Lambda +将响应从Lambda返回到API

来自分类Dev

带有Lambda HTTP GET请求的AWS API Gateway(Node.js)502错误的网关

来自分类Dev

为什么我的AWS ECS任务需要docker api 1.18?

来自分类Dev

为什么在AWS api网关部署中部署区域显示为灰色?

来自分类Dev

在 AWS Lambda 中,为什么无法导入函数的模块?

来自分类Dev

即使返回数据,API 网关 CORS 错误

来自分类Dev

AWS API 网关和 LAMBDA 函数

来自分类Dev

如何将 net.socket 数据从 AWS Lambda Node.js 8.10 异步函数返回到 AWS API 网关?

Related 相关文章

  1. 1

    AWS Lambda + API网关POST错误

  2. 2

    AWS Lambda + API网关POST错误

  3. 3

    AWS API网关+ SQS + Lambda +将响应从Lambda返回到API

  4. 4

    AWS Lambda网关API给出错误消息

  5. 5

    从AWS API网关执行Lambda的脚本权限

  6. 6

    通过AWS Lambda / API网关返回JSONP

  7. 7

    为什么我的AWS ECS任务需要docker api 1.18?

  8. 8

    Repl.it与AWS Lambda + API网关

  9. 9

    为什么AWS Lambda调用客户端错误地返回ClientExecutionTimeoutException?

  10. 10

    如何使用AWS_PROXY模式通过API网关和CloudFront通过AWS Lambda返回二进制内容?

  11. 11

    为什么在AWS Lambda上bcryptjs的速度比本地docker慢?

  12. 12

    抖动网站中的XMLHttpRequest错误[启用CORS AWS API网关]

  13. 13

    AWS Lambda-在lambda函数中获取API网关路径

  14. 14

    为什么此AWS Lambda会导致错误:警告:回调/响应已传递

  15. 15

    AWS Lambda HTTP API网关集成无法实现CORS

  16. 16

    为什么settimeout在我的AWS Lambda中导致502?

  17. 17

    为什么AWS Lambda函数从后端返回不同的响应值?

  18. 18

    为什么我的AWS Lambda函数返回null?(Python代码)

  19. 19

    AWS LAMBDA api网关错误“格式错误的Lambda代理响应”状态错误502

  20. 20

    AWS SQS + API网关+ Lambda + DB

  21. 21

    关于API网关URL错误(SES,API网关,Lambda与javascript / html集成)有什么想法吗?

  22. 22

    AWS API网关+ SQS + Lambda +将响应从Lambda返回到API

  23. 23

    带有Lambda HTTP GET请求的AWS API Gateway(Node.js)502错误的网关

  24. 24

    为什么我的AWS ECS任务需要docker api 1.18?

  25. 25

    为什么在AWS api网关部署中部署区域显示为灰色?

  26. 26

    在 AWS Lambda 中,为什么无法导入函数的模块?

  27. 27

    即使返回数据,API 网关 CORS 错误

  28. 28

    AWS API 网关和 LAMBDA 函数

  29. 29

    如何将 net.socket 数据从 AWS Lambda Node.js 8.10 异步函数返回到 AWS API 网关?

热门标签

归档