AWS Elastic beantalk上的CORS

时间:2018-11-19 09:34:52

标签: amazon-web-services nginx cors amazon-elastic-beanstalk

我是AWS的新用户,并且使用过

  • 弹性beantalk ,将我的其余API(api.example.com)部署在节点中
  • 我的静态网站(example.com)中的
  • S3存储桶 cloudfront


从网站调用AP​​I端点时,浏览器给出了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的评论

我还在存储桶中配置了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上都可以正常工作。

1 个答案:

答案 0 :(得分:2)

我已经将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>