You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用服务发现的AWS ECS全栈应用CORS问题求助

问题分析与解决方案

核心问题

从浏览器报错信息可以明确,问题根源是请求URL缺少协议前缀:你发起的请求地址是api.example.terraform.com:3300/mysql,未指定http://或https://。浏览器会将无协议的URL视为相对路径或无法识别合法协议,进而触发跨域错误提示(实际是网络请求解析失败)。

而curl命令能正常工作,是因为命令行工具默认会为无协议URL补充http://前缀,请求能正确发送到后端。

修复步骤

1. 修改前端请求URL

找到前端代码中发起请求的位置(Dashboard.vue第29行),给请求URL添加http://前缀:

// 修改前
axios.get('api.example.terraform.com:3300/mysql')
// 修改后
axios.get('http://api.example.terraform.com:3300/mysql')

2. 验证后端CORS配置(可选但建议)

虽然你已配置CORS,仍可确认配置是否允许前端的源地址(http://<public-IP>)。测试阶段可临时将CORS的origin设为*排除配置问题:

// Node.js后端示例配置
const cors = require('cors');
app.use(cors({
  origin: '*', // 测试用,生产环境请指定具体域名
  credentials: true
}));

3. 确认服务发现域名的公网可解析性

确保api.example.terraform.com能被公网环境解析到后端服务的正确地址。可在本地浏览器直接访问http://api.example.terraform.com:3300/mysql,确认能正常返回数据。

额外排查点

  • 检查后端服务的安全组和网络ACL,确保3300端口对前端所在公网IP开放(EC2内部curl能通不代表公网可访问)
  • 后续若使用HTTPS,需将请求URL协议改为https://,并确保后端配置了对应SSL证书

内容的提问来源于stack exchange,提问作者Somethingwhatever

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:13:14