gpt4 book ai didi

node.js - nginx,上游,cors 失败

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:08 25 4
gpt4 key购买 nike

无法理解为什么我的上游/CORS 配置失败。这阻碍了一些本地开发和测试。

local.mysite.com:8081 发出 API 请求时,我收到请求的资源上不存在“Access-Control-Allow-Origin” header strong> 到 events.mysite.com

这是我的服务器配置/etc/nginx/sites-available/mysite

# the IP(s) on which your node server is running. I chose port 3000.
upstream mysite {
server 127.0.0.1:3000;
}

# the nginx server instance
server {
listen 0.0.0.0:80;
server_name mysite events.mysite.com;
access_log /var/log/nginx/mysite.log;

# pass the request to the node.js server with the correct headers and much more can be added, see nginx config options
location / {
proxy_set_header Access-Control-Allow-Origin *;
# proxy_set_header 'Access-Control-Allow-Credentials' 'true'; # i've tried with and without this setting
proxy_set_header 'Access-Control-Allow-Headers' 'X-Requested-With,Accept,Content-Type, Origin';
proxy_set_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

proxy_pass http://app_mysite/;
proxy_redirect off;
}
}

另外,我尝试在 Access-Control-* 选项上使用 add_header 而不是 proxy_set_header,但也没有骰子。

我正在运行 Node.js 应用程序。我没有修改 Node 代码来处理 CORS...是我的 nginx 配置错误,还是可以,但我需要在 Node 中做其他事情?

最佳答案

CORS header 必须提供给浏览器,而不是您的 Node 应用程序。因此,您应该使用 add_header 指令,或者更好的是,在您的应用程序中设置这些 header 。这应该足够了。如果您确实使用withCredentials,请取消注释相应的行。如果您使用的东西使浏览器发送预检请求,您应该正确处理“OPTIONS”请求。

location / {
add_header Access-Control-Allow-Origin *;
# add_header Access-Control-Allow-Credentials true;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

proxy_pass http://app_mysite/;
proxy_redirect off;
}

关于node.js - nginx,上游,cors 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23478470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com