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

use*_*354 0 express amazon-elastic-beanstalk

我将 Express 服务器部署到 Elastic Beanstalk,但我无法让它访问外部域!我觉得我已经尝试了许多应该有效的方法。请看一看,如果我遗漏了什么,请告诉我。提前致谢!

  1. 在快速配置中添加标头

    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();
    
    Run Code Online (Sandbox Code Playgroud)

    });

  2. 使用 npm 模块 cors

    var app = express();

    app.use(cors());

  3. 更改了 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>

use*_*354 5

弄清楚了。而且很蠢

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

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

祝你好运!