无法从主域访问子域:没有“Access-Control-Allow-Origin”标头
当您尝试访问时会出现问题从主域上的 React 应用程序访问托管在子域上的 API 服务器。使用 CORS(跨域资源共享)进行跨域通信时,服务器必须发送 'Access-Control-Allow-Origin' 标头来指定允许哪些域访问。
问题定义
尝试从 React 应用访问 API 时遇到 CORS 策略错误,并显示错误消息“请求的资源上不存在‘Access-Control-Allow-Origin’标头”。尽管使用不同的方法来设置 CORS 中间件,包括使用 gin-contrib/cors 库和手动添加标头,但错误仍然存在。
解决方案
它变成发现问题不在于服务器端 CORS 配置,而在于 AWS 负载均衡器目标组上的设置。您之前已在目标组中将协议设置为 HTTPS,即使您仅向 Route 53 和 ALB 提供了 ACM 证书。在目标组中将 HTTPS 替换为 HTTP 后,问题就解决了,并且可以从 React 应用程序访问 API。
调试 CORS 问题
诊断 CORS-相关问题,使用 Chrome DevTools 或 cURL 等专用工具检查预检请求至关重要。检查预检响应标头以确保存在预期的“Access-Control-Allow-Origin”标头。如果响应指示除 204 No Content 之外的状态代码,则可能表明服务器端响应或其客户端解释存在问题。
以上是尽管进行了正确的 CORS 配置,为什么子域上的 API 服务器无法响应“Access-Control-Allow-Origin”标头?的详细内容。更多信息请关注PHP中文网其他相关文章!