Nginx – 即使在添加指令“访问控制允许来源”后,请求logging错误

我试图运行我的nodejs应用程序的nginx盈方(我正在使用Windows机器)

我的NodeJS应用程序运行在3000端口

我已经在8070端口启动了Nginx

当我尝试击中http:// localhost:8070 /从浏览器得到下面引用的问题

这是我的Nginxconfiguration

server { listen 8070; server_name localhost; location / { access_log logs/access.log; add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Content-Type,Accept'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; 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_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_max_temp_file_size 0; proxy_pass http://my-app/; proxy_redirect off; proxy_read_timeout 240s; } } 

但是,我仍然收到以下错误

XMLHttpRequest无法加载localhost:3000 / my-app / api / engineOptions / get。 对预检请求的响应不会通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 原因' http:// localhost:8070 '因此不被允许访问。

我是否缺less关于Access-Control-Allow-Origin指令的nginxconfiguration中的任何内容?

这里的问题是你的JavaScript正在从localhost:3000 (这是NodeJS服务器)请求一个资源,并且在该请求的响应中没有Access-Control-Allow-Origin响应。

你应该确保所有的请求你的JS文件进入localhost:8070 ,你的nginx是。 这样所有的回应将得到正确的标题。