如何在 nginx 上配置 cors?
Posted
技术标签:
【中文标题】如何在 nginx 上配置 cors?【英文标题】:how to configure cors on nginx? 【发布时间】:2021-10-28 08:55:01 【问题描述】:我已经按照说明在 nginx 上配置了 cors,但是并没有解决问题。
#Disable IFRAME
add_header Access-Control-Allow-Origin: *;
add_header Access-Control-Allow-Methods: "GET, HEAD, POST, PUT, PATCH, DELETE";
add_header Access-Control-Expose-Headers: *;
add_header X-Frame-Options SAMEORIGIN;
#Prevent Cross-site scripting (XSS) attacks
add_header X-XSS-Protection "1; mode=block";
#Prevent MIME-sniffing
add_header X-Content-Type-Options nosniff;
结果还没有确定:
请帮帮我!
【问题讨论】:
【参考方案1】:我可以建议一些小事来解决您当前的问题:
-
标题“Access-Control-Allow-Origin”有多个条目。请删除所有额外内容。
标题“Access-Control-Allow-Methods”的条目缺少冒号 (:) 和尾随逗号 (,) 字符。请修复它。
确保 nginx 服务器重新启动或停止/启动。
【讨论】:
谢谢你,我已经按照你的建议改正了,但还是没有解决问题:( 我快速参考了一些关于如何在 nginx 中启用 CORS 的站点,并注意到在 ngnix 配置文件中设置它们时没有冒号分隔符 (:)。冒号 (:) 仅在他们试图证明设置已成功应用于请求标头部分时出现。 您好 Hamid Se,感谢您的回答我修改了代码如下:jsfiddle.net/b68oza9u 但它仍然无法工作 请查看并相应调整。 enable-cors.org/server_nginx.html 根据上面给定的屏幕截图,我假设您正在运行具有 2 个虚拟主机的单个 nginx 实例作为网络服务器(而不是代理); 1 用于端口 80 的 api 和 1 用于端口 9013 的客户端。我希望你已经在正确的服务器配置中设置了 cors 标头,它位于 api。以上是关于如何在 nginx 上配置 cors?的主要内容,如果未能解决你的问题,请参考以下文章
使用 NGINX 和 AWS Elastic Beanstalk 配置 CORS