我将Express服务器部署到Elastic Beanstalk但我无法通过它来访问外部域名!我觉得我已经尝试了很多应该有用的东西。如果我错过了什么,请看看并告诉我。提前谢谢!
在快速配置中添加标题
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>
答案 0 :(得分:4)
想出来。这是愚蠢的
我的代码出错,我看不到因为它在EB上。我没有检查AWS上的日志。最后,我在本地部署了服务器,并在两个不同的端口上运行我的应用程序和服务器。然后我在控制台中看到了错误。
由于某些原因,由于我的代码中的错误,我得到了访问控制允许来源错误。不确定原因。但是如果你得到它,并且你认为你已经处理了所有CORS的东西,那么你的代码中可能会出现错误。
祝你好运!