nginx解决跨域

什么是跨域

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

为什么会有跨域

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

解决方案

使用Nginx做反向代理

  • 情景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;
        }       
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值