如何在API网关aws中启用CORS

问题描述 投票:0回答:1

我正在使用 AWS API Gateway 和 Lambda 设置 API,从前端发出请求时遇到 CORS 问题。在检查设置时,我注意到一些奇怪的事情:

在 Lambda 配置的“触发器”部分(其中列出了 API 网关端点),CORS 字段显示“否”,即使我在每个方法的 API 网关配置中启用了 CORS。

我在 API 网关中的 CORS 设置: 我在 API 网关中的 CORS 设置

我在 Lambda 中的 CORS 设置:

export const handler = async (event, context) => {
  let body;
  let response;
  let statusCode = 200;
  const headers = {
    "Access-Control-Allow-Origin": "https://www.yoteinvito.com",
    "Access-Control-Allow-Headers": "Content-Type, Accept",
    "Access-Control-Allow-Methods": "POST, GET, PUT, OPTIONS",
    "Access-Control-Allow-Credentials":"true",
  };

Lambda 中的触发器配置:

Lambda 中的触发器配置

Headers in frontend:
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(formData),  
    })


控制台错误:

Access to fetch at 'https://rgfz15v2qp.execute-api.us-east-2.amazonaws.com/dev/confirmations' from origin 'https://www.yoteinvito.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

API网关端点详情中显示CORS: NO是否正常?

这可能是我的 CORS 问题的原因吗?

我需要采取任何其他步骤来确保 CORS 完全启用吗?

我非常感谢您可以分享的任何指导或经验。谢谢!

我在 API Gateway 中为所有方法(GET、POST、PUT、DELETE 等)启用了 CORS,添加了必要的标头(例如 Access-Control-Allow-Origin: *),并为 OPTIONS 请求配置了响应。

但是,尽管进行了这些配置,CORS 字段在触发器详细信息中仍然显示 NO,并且我的前端请求因 CORS 错误而失败。

amazon-web-services aws-lambda cors aws-api-gateway
1个回答
0
投票

您的飞行前方法失败,这是您的 API 的 OPTIONS 方法。请务必启用 cors 并将您的更改部署到阶段。

如果仍然失败,请尝试使用通配符以确保问题与您的主机网址无关。

© www.soinside.com 2019 - 2024. All rights reserved.