访问AWS EC2上部署的Swagger API时出现CORS错误

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

我已在 AWS EC2 实例上部署了 NestJS 后端。 Swagger UI 可以访问,但是当我尝试使用 Swagger 访问 API 时,收到以下错误:

问题:获取失败。可能的原因:

  1. CORS
  2. 网络故障
  3. 对于 CORS 请求,URL 方案必须是“http”或“https”。

详情:

  1. 直接在 EC2 实例上测试时,API 可以正常工作(例如,使用
    curl
    )。
  2. 通过 EC2 实例的公共 IP 地址访问 Swagger UI。
  3. 尝试通过 Swagger UI 访问 API 端点时发生错误。
  4. 我的后端在
    http://localhost:3033
    上运行,并且通过 EC2 实例的公共 IP 访问 Swagger UI。

采取的故障排除步骤:

  1. 确认可以直接从 EC2 实例访问后端 API。
  2. 通过在 NestJS 应用程序中设置适当的 CORS 标头,验证服务器是否配置为处理 CORS 请求。
  3. 检查AWS EC2中的网络配置和安全组以确保正确访问。

环境: NestJS版本: AWS EC2 实例:Amazon linus(t2.micor)。 招摇版本:6.0.5 浏览器:Chrome、Edge Node.js 版本:最新 核心:9.0.0

请求网址:http://localhost:3033/api/v1/auth/signin 错误图片请检查

amazon-web-services api deployment cors swagger
1个回答
0
投票

您是否在您的 Nestjs BE 的 Cors 设置中允许这样做

  app.enableCors({
    origin: ['http://your-ec2-public-ip', 'http://localhost:3033'], // replace with your EC2 public IP or domain
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
    credentials: true,
  });
© www.soinside.com 2019 - 2024. All rights reserved.