Nginx反向代理处理跨域

Nginx proxy_pass

Posted by XYH on May 6, 2019

记录使用Nginx反向代理解决前端跨域问题。

Nginx反向代理解决前端跨域问题

No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

前言:最近在抓包快手用户结构及视频的时候,使用Fiddler抓完包,反编译破解sig算法之后,使用H5做了一个分析工具,在请求的过程中,出现了如上错误,当然这也是意料之中的事情。

这里使用了某台服务器的Nginx来解决这个问题,利用Nginx的反向代理设置响应头。

1
2
3
4
5
6
7
8
9
10
11
12
location ^~ /rest/ {
       add_header Access-Control-Allow-Origin *;
       add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
       add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

       if ($request_method = 'OPTIONS') {
          return 204;
        }
        
       proxy_pass http://api.gifshow.com/rest/;
    }

具体参见HTTP访问控制。