由于 CORS,从 AngularJS 到 Nodejs 的请求被拒绝

由于 CORS,从 AngularJS 到 Nodejs 的请求被拒绝

我有一个 AngularJS/NodeJs 网络应用程序,并且在 DigitalOcean 上使用 Nginx 作为服务器,并且我也使用 CloudFlare。

该网站正常运行,一周前,我访问该网站时发现我的索引已更改为,

欢迎使用 nginx!

如果您看到此页面,则表示 nginx Web 服务器已成功安装并正常运行。需要进一步配置。

有关在线文档和支持,请参阅 nginx.org。商业支持可在 nginx.com 上获得。

检查了我的 Nginx 配置文件,发现配置没有任何问题,所以我删除了索引并上传了旧索引网站已经恢复运行,但是我无法再登录,并且我相信我无法发出任何 API 请求。

当我尝试登录时我得到的只是来自控制台的此消息。

火狐

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://dev.website.com/api/auth/login.

(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。

铬合金

访问 XMLHttpRequest 'https://dev.supplieson.com/api/auth/login' 来自起源 'http://dev.supplieson.com' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

我的 Nginx 配置如下

   server {
        listen 80 default_server;
        listen [::]:80 default_server;
        listen 443 ssl http2 default_server;
        listen [::]:443 ssl http2 default_server;

        root /usr/share/nginx/html;
        index index.html index.htm index.nginx-debian.html;

        #server_name supplieson.com www.supplieson.com;
        include snippets/self-signed.conf;
        include snippets/ssl-params.conf;

        location / {
                try_files $uri $uri/ /index.html =404;
        }

        location ~ ^/images/(.*) {
            alias /usr/share/nginx/api/supplieson_backend/images/$1;
        }

        location /api {
                proxy_pass http://127.0.0.1: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;
        }

        error_page 404 /custom_404.html;
        location = /custom_404.html {
                root /usr/share/nginx/html;
                internal;
        }

        error_page 500 502 503 504 /custom_50x.html;
        location = /custom_50x.html {
                root /usr/share/nginx/html;
                internal;
        }

        location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 1m;
        }
}

Express 应用程序

import cors from 'cors';

app.use((req, res, next) => {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept, Authorization"
  );
  res.setHeader(
    "Access-Control-Allow-Methods",
    "GET, POST, PATCH, PUT, DELETE, OPTIONS"
  );
  next();
});

app.use(cors());

相关内容