代理解决跨域问题

再度Miren
2018-08-13 / 0 评论 / 389 阅读 / 正在检测是否收录...


之前讲到了解决跨域的两种方式:JSONPCORS ,都是需要在被调用方来修改代码解决的。

我们还可以通过代理方式,在调用方来解决跨域问题。

代理解决跨域问题

代理解决跨域问题的思路是:让发送出去的请求代理成是本域的

举个例子:

192.168.10.1:8080 是调用方
192.168.10.2:8080 是被调用方

它俩是不同域的,但我们可以在 nginx 或 Apache 上进行配置代理:将被调用方 192.168.10.2:8080 射成别的路径

http {
    server {
       listen 80;
       
	   location /{
			proxy_pass http://192.168.10.1:8080;
	   }
	   
	   location /test{
			proxy_pass http://192.168.10.2:8080;
	   }
    }
}

比如上面,nginx 运行在 192.168.10.1 上,nginx 将 192.168.10.2:8080 端口的映射成了 test ,当调用方访问 test 路径时,这样的方法在外部看起来就不像是跨域了,像是访问本地(http://192.168.10.1:8080),但实际访问别的域(http://192.168.10.2:8080)。

总结

以上就是解决跨域的三种方式:JSONPCORS 、代理。

最简单的是通过 Spring 的注解就可以解决跨域的问题了,JSONP 的方式已经是很少用的了,因为存在一定的弊端。当我们无法改动被调用方代码时,可以使用代理解决跨域问题。


0

评论 (0)

取消