在亚马逊EC2实例上的docker-compose中运行React/Node时出现持久性CORS错误。
CORS(跨源资源共享)是一种浏览器安全机制,用于限制跨域请求。当在亚马逊EC2实例上使用docker-compose运行React和Node应用时,可能会遇到CORS错误,这是因为浏览器默认情况下不允许跨域请求。
解决这个问题的方法有以下几种:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
这将允许来自任何源的请求访问你的API。如果你只想允许特定的源,可以将*
替换为你的源地址。
location /api {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
return 204;
}
proxy_pass http://backend;
}
这将允许来自任何源的请求访问/api
路径下的接口。
package.json
文件中添加以下代码:"proxy": "http://backend:port"
将backend
替换为你的后端地址,port
替换为你的后端端口。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的产品仅为示例,你可以根据实际需求选择适合的产品。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云