首先,我在写完问题后已经研究了该主题,有很多类似的问题,但我认为这里的问题有所不同:
No 'Access-Control-Allow-Origin' - Node / Apache Port Issue
我们在发送重请求时刚收到此Access-Control-Allow-Origin cors错误
从[https://backend。*****。es / xxxxxx'访问XMLHttpRequest原点“ https://www.testing。*******。es”已被CORS阻止策略:“访问控制允许来源”标头不存在要求的资源
其余的请求工作正常,我尝试设置:
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
next();
});
但是我得到了相同错误
。
我开始认为它可以与nginx
相关。
这是我们正在使用的体系结构:
- NodeJs,Expressjs
中间件:
const LIMIT ='100mb';const global =()=> [morganMiddleware(),压缩(),cors(),bodyParser.urlencoded({扩展为true,限制为LIMIT}),bodyParser.json({limit:LIMIT}),头盔(),];
服务器:Nginx 12.14.1
AWS Elastic BeanStalk
中的主机>让我知道是否有人知道会发生什么,因为我不知道它是否来自我们的nodejs服务器或nginx。我们已经测试了许多解决方案,并且仍在检查其他选项。
首先,我在写完问题后就对该主题进行了研究,有很多类似的问题,但是我认为这里的问题有所不同:没有'Access-Control-Allow-Origin'-Node / ...
] >
,它还与NGINX中设置的限制有关。
现在,我们只需要弄清楚如何访问弹性beantalk实例来更改该变量,并且已经解决了。
SSH to Elastic Beanstalk instance
要解决这个问题,请在.ebextensions内创建一个文件x.config并使用下一个yaml文件更改此变量:
files:
"/etc/nginx/conf.d/01-client_max_body_size.conf":
mode: 000644
owner: root
group: root
content: |
# MODIFIED VARIABLES ADDED BY 01-client_max_body_size.conf
client_max_body_size 12m;
client_body_buffer_size 16k;
container_commands:
nginx_reload:
command: sudo service nginx reload
然后重新部署您的环境。
非常感谢大家的帮助!