无法将请求从通过nginx提供服务的React前端POST到节点后端

1wnzp6jl  于 2023-02-15  发布在  Nginx
关注(0)|答案(1)|浏览(157)

我在同一台Linux服务器上托管我的express backend REST API和react frontend,我使用HTTP协议在端口80上使用nginx提供react构建文件,后端使用pm2在远程服务器的端口1210上本地运行。
react的构建文件在/var/www/agpcms/html/文件夹中,Nginx配置为/etc/nginx/sites-available/agpcms/etc/nginx/sites-enabled/agpcms

# in /etc/nginx/sites-available/agpcms
server {
  listen 80;
  
  server_name localhost;
  root /var/www/agpcms/html;
  index index.html;
  
  access_log /var/log/nginx/agpcms.com.access.log;
  error_log /var/log/nginx/agpcms.com.error.log;

  location / {
    try_files $uri /index.html =404;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header Host $host;
    proxy_redirect off; 
  }
}

我遇到的问题是,我可以很好地执行GET请求,但在发送POST请求(如注册)时,我无法从后端获得响应。我尝试过注解/取消注解上面的nginx配置文件,但迄今为止没有运气。我在浏览器工具上得到的错误
在Brave浏览器(Chromium)上,我从xhrpreflight请求中得到(failed)状态,在Firefox上,OPTIONS和POST请求都返回空响应,并将其打印到控制台

on Firefox console
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:1210/apis/v1/auth/signup. 
(Reason: CORS request did not succeed). Status code: (null). [Learn more]

我确信我已经正确地设置了CORS,因为我已经通过暴露端口1210尝试过从浏览器后端处理GET请求。
我在这里错过了什么,使它能够处理POST请求?我目前没有设置https,但我是否需要在https中运行它,以解决这个问题?
任何帮助都非常感谢。谢谢阅读。

h9vpoimq

h9vpoimq1#

原来我必须使用远程服务器的IP地址iidoEe. x.xx.xx.xxx而不是localhost来构建前端,并且还将server_name更改为这个IP地址。这解决了我的问题。

相关问题