我已将React客户端上传到DigitalOcean,并附带SSL证书以启用HTTPS。我还将我的Express服务器上传到亚马逊的AWS。不同主机提供商的原因是我无法将我的客户端上传到AWS,因此我切换到DO。
服务器运行良好,当我从我的机器上使用客户端时,我得到了正常的响应。但是,完全相同的代码在DO的Nginx服务器中不起作用。我明白了:
TypeError:Networkerror when attempting to fetch resource
但没有响应错误代码。 GraphQL / fetch请求在服务器上不可见,因此它们要么没有正确发送,要么服务器无法正确接受它们。
我在客户端的package.json和HOST / PORT / HTTPS属性中使用“proxy”,如here所示。但我意识到这些对生产没有任何影响。
我不知道如何解决这个问题。我唯一的猜测是客户端使用HTTPS,而服务器没有,但我没有找到关于这是否有问题的信息。
这是我客户的Nginx服务器配置:
server {
listen 80 default_server;
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
答案 0 :(得分:0)
如果您的客户位于与您的API服务器不同的域中,那么您需要确保在API服务器上启用了CORS标头,否则浏览器将拒绝加载内容。
有关CORS标头的详细信息,请参阅here。
答案 1 :(得分:0)
在 DO 上运行客户端时是否关闭了凭据?也许在您的客户端上存储 cookie 是不可能的。