如何在 Elastic Beanstalk 上部署的 Express 服务器上创建“Access-Control-Allow-Origin”标头?

Posted

技术标签:

【中文标题】如何在 Elastic Beanstalk 上部署的 Express 服务器上创建“Access-Control-Allow-Origin”标头?【英文标题】:How to create 'Access-Control-Allow-Origin' header on Express server deployed on Elastic Beanstalk? 【发布时间】:2015-01-20 22:41:40 【问题描述】:

我在 Elastic Beanstalk 上部署了一个 Express 服务器,但我无法让它访问外部域!我觉得我已经尝试了许多应该有效的方法。请看一下,让我知道我是否遗漏了什么。提前致谢!

    在快速配置中添加标题

    var app = express();

    app.use(function (req, res, next)

    // Website you wish to allow to connect
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8100');
    
    // Request methods you wish to allow
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    
    // Request headers you wish to allow
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    
    // Set to true if you need the website to include cookies in the requests sent
    // to the API (e.g. in case you use sessions)
    res.setHeader('Access-Control-Allow-Credentials', true);
    
    // Pass to next layer of middleware
    next();
    

    );

    使用 npm 模块 cors

    var app = express();

    app.use(cors());

    更改了 S3 上的 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> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>

【问题讨论】:

【参考方案1】:

想通了。这很愚蠢

我的代码中有一个错误,我看不到它,因为它在 EB 上。而且我没有检查 AWS 上的日志。最后,我在本地部署了服务器,并在两个不同的端口上运行了我的应用程序和服务器。然后我在控制台中看到了错误。

由于某种原因,由于我的代码中的错误,我收到了 Access Control Allow Origin 错误。不确定原因。但是,如果你得到它,并且你认为你已经处理了所有的 CORS 东西,那么你的代码中可能有一个错误你丢失了。

祝你好运!

【讨论】:

以上是关于如何在 Elastic Beanstalk 上部署的 Express 服务器上创建“Access-Control-Allow-Origin”标头?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 aws cli 在 Elastic Beanstalk 上上传和部署?

如何在 AWS Elastic Beanstalk 上部署 django 频道 2.x?

在 Elastic Beanstalk 上部署时出错 - Rails

如何在部署应用程序 Elastic beanstalk 上修改 NGINX 配置

在 AWS Elastic Beanstalk 上部署 rails 应用程序

如何在 nitrous io 盒上配置 git 以部署到 AWS Elastic Beanstalk?