nginx解决跨域

原文链接 https://segmentfault.com/a/11...

什么是跨域

协议 + 域名 + 端口 有一处不相同时,就认为是跨域

为什么会有跨域

同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到攻击。

解决方案

  • 情景1

    假设网站部署在80接口,在80接口下设置反向代理,可直接解决跨域问题

      location ^~/v1{
          rewrite ^/v1/(.*)$ /$1 break;
          proxy_pass  http://localhost:8080;
      }
  • 情景2

    假设网站部署在8081端口,api端口为8080,反向代理服务端口为80

  location ^~/v1{
        rewrite ^/v1/(.*)$ /$1 break;
        proxy_pass  http://localhost:8080;
        add_header Access-Control-Allow-Methods *;
        add_header Access-Control-Max-Age 3600;
        add_header Access-Control-Allow-Credentials true;
        add_header Access-Control-Allow-Origin $http_origin;
        add_header Access-Control-Allow-Headers 
        $http_access_control_request_headers;
        if ($request_method = OPTIONS){
            return 200;
        }       
  }

你可能感兴趣的:(nginx,跨域)