在rider 中 后台同一个业务模块,1台服务器跨域,1台服务器不跨域,帮我看看什么问题

Blade 未结 1 101
1502461081
1502461081 剑圣 2025-05-22 09:23

image.png




image.png

1条回答
  • 2025-05-22 11:53

    127.0.0.1不会出现跨域,域名出现跨域是很常见的情况。如果部署外网用域名访问,有两种方式:
    一、后端接口的nginx配置反向代理

        location /api {
            
            # 隐藏后端返回的 CORS 头部
            proxy_hide_header 'Access-Control-Allow-Origin';
            proxy_hide_header 'Access-Control-Allow-Methods';
            proxy_hide_header 'Access-Control-Allow-Headers';
            proxy_hide_header 'Access-Control-Allow-Credentials';
            proxy_hide_header 'Access-Control-Expose-Headers';
            proxy_hide_header 'Access-Control-Max-Age';
            
            # 所有非OPTIONS请求的CORS头部
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
            add_header 'Access-Control-Allow-Headers' 'DNT,X-Requested-With,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,token,Blade-Auth,Blade-Requested-With,Tenant-Id' always;
            add_header 'Access-Control-Allow-Credentials' 'true' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always;
            
            
            # 处理OPTIONS预检请求
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
                add_header 'Access-Control-Allow-Headers' 'DNT,X-Requested-With,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,token,Blade-Auth,Blade-Requested-With,Tenant-Id' always;
                add_header 'Access-Control-Max-Age' 3600;  # 预检请求的缓存时间
                add_header 'Content-Length' 0;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                return 204;  # 返回204响应,表示成功,但不返回数据
            }
            
            # 原来的代理配置
            proxy_redirect              off;
            proxy_set_header            Host $host;
            proxy_set_header            X-real-ip $remote_addr;
            proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass                  http://127.0.0.1:8800/;
        }

    二、rider部署的时候,对应的nginx代理到本地

        location /api {
            proxy_redirect              off;
            proxy_set_header            Host $host;
            proxy_set_header            X-real-ip $remote_addr;
            proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass                  http://xxx.com/;
        }



    0 讨论(0)
代码语言
提交回复