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
下面看看原理
就可以有跨域的权限了
尽情的抓数据玩吧