不能修改服务器时的跨域解决方案

jsonp,Access-Control-Allow-Origin这些方式都需要服务器支持,如果能修改服务器端都好说,下面给出无法修服务器时的解决方案

方法:nginx代理

网上有很多说这种方法的,但是少了一些步骤会让读者困惑,在此给出一些补充

比如我们要用ajax或者fetch访问的url为
http://a.b.c.com/xxx/yyy

修改nginx安装目录下的conf/nginx.conf文件

1.12.2版本 http标签里的server标签没改过的应该如下

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
。。。。。。(下面用不到)

listen端口改成个不常用的,这里改成8282
然后加一条

location /qm/ {
        proxy_pass   http://a.b.c.com/;
        add_header 'Access-Control-Allow-Origin' *;
    }

a.b.c.com就是我们想要访问但是没有权限的域
/qm/ qm随便起个名就行
http://a.b.c.com/最后这条斜杠一定要加上
好多博客给出这种方法,但是都没有这条,

add_header 'Access-Control-Allow-Origin' *;
这句才是重点好吗。。

修改完大概这样

server {
        listen       8282;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }   (这个用不到删了也行)

    location /qm/ {
        proxy_pass   http://a.b.c.com/;
        add_header 'Access-Control-Allow-Origin' *;
    }
。。。。。。(下面用不到)

原来要用ajax或者fetch访问的url:
http://a.b.c.com/xxx/yyy
现在改成
http://localhost:8282/qm/xxx/yyy

下面看看原理


就可以有跨域的权限了
尽情的抓数据玩吧


你可能感兴趣的:(不能修改服务器时的跨域解决方案)