AWS 弹性豆茎上的 CORS
Posted
技术标签:
【中文标题】AWS 弹性豆茎上的 CORS【英文标题】:CORS on AWS Elastic beanstalk 【发布时间】:2019-04-21 15:26:39 【问题描述】:我是 AWS 新手并使用过
Elastic beanstalk 在节点中部署我的 REST API (api.example.com) 和 S3 存储桶 和 cloudfront 用于我在 React 中的静态网站 (example.com)。从网站调用 API 端点时,浏览器出现 CORS 错误。我该如何预防呢?
我在 CORS 的节点项目中使用以下代码
app.use((req, res, next) =>
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Credentials', true)
res.header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS')
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
next();
);
编辑 - 基于 arudzinska 的评论
我也在bucket中配置了CORS
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
</CORSRule>
</CORSConfiguration>
并且服务器在 nginx
提前感谢您的帮助
P.S - 另外,我看到很少有帖子给出原因,因为项目代码中会有一些错误,但所有端点都在 POSTMAN 上正常工作。
【问题讨论】:
您是否也在您的存储桶上配置了 CORS? 是的,我在桶里做了,请查看更新后的问题 @Aman 找到解决方案了吗? 请检查我的回答@ZeferiniX 【参考方案1】:我已将 AWS 中的 CORS 配置更新为并且可以正常工作
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://localhost:3000</AllowedOrigin>
<AllowedOrigin>https://example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
【讨论】:
我遇到了同样的问题。我在哪里可以找到这个文件? @RZKY 转到 S3 -> 您的存储桶 -> 权限 -> CORS 配置 都不适合我,尝试添加配置并添加 app.use(cors())以上是关于AWS 弹性豆茎上的 CORS的主要内容,如果未能解决你的问题,请参考以下文章