跨域问题

来源:17-5 tomcat多实例配置及验证

无敌威威

2019-08-10

老师,我是用两台服务器,但是出现跨域问题,是前后端分离的项目

前端的Nginx配置如下:(域名:ldms.lzw188.com

server {
        listen 443 ssl;
        server_name ldms.lzw188.com;
        ssl on;
        root html;
        ssl_certificate cert/nginx/ldms.lzw188.com_bundle.pem;
        ssl_certificate_key cert/nginx/ldms.lzw188.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        if ( $uri ~* "^/api*" ) {
             rewrite ^/api/(.*)$ https://www.lzw188.com/$1 permanent;
         }

        location / {
                try_files $uri $uri/ /index.html;
                root /gitdownload/ldms_fe/dist/;
         }
    }

后台的Nginx配置:(域名:www.lzw188.com

 server {
        listen 443 ssl;
        server_name www.lzw188.com;
        ssl on;
        root html;
        ssl_certificate cert/nginx/wwwlzw188com.pem;
        ssl_certificate_key cert/nginx/wwwlzw188com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
        ssl_prefer_server_ciphers on;

        location / {
                add_header 'Access-Control-Allow-Origin' 'https://ldms.lzw188.com' ;
                add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' ;
                add_header 'Access-Control-Allow-Headers' 'Accept, deviceId, Authorization, Cache-Control, Content-Type, DNT, If-Modified-Since, Keep-Alive, Origin, User-Agent, X-Requested-With, Token, x-access-token';
                proxy_pass http://127.0.0.1:9080/;
                proxy_set_header Host $host;
                proxy_redirect http:// https://;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
    }
     server {
        listen       80;
        server_name  www.lzw188.com;
        rewrite ^(.*)$ https://${server_name}$1 permanent;
    }

已经加上跨域的 Access-Control-Allow-Origin了,但是访问还是报错

Access to XMLHttpRequest at 'https://www.lzw188.com/app' (redirected from 'https://ldms.lzw188.com/api/app') from origin 'https://ldms.lzw188.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
写回答

1回答

geelylucky

2019-08-10

同学,你用一个nginx就可以了,拆分出静态资源请求和动态请求,使用nginx代理功能去处理,不要用rewrite。

0
0

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2685 学习 · 947 问题

查看课程