跨域问题解决方案×3

跨域问题解决从两个方面,一是被调用方,二是调用方。

假设被调用方是b.com,调用方是a.com
在这里插入图片描述

(1)从被调用方解决,支持跨域。在APACHE/NGINX服务器上,基于HTTP协议,在返回响应头部增加指定字段,告诉浏览器,我允许被跨域调用。这种方式下,浏览器上会有b.com的URL。
如通过在server端增加Filter的解决方案:让所有的请求都通过filter,给头部增加字段。
在这里插入图片描述

(2)从调用方解决,隐藏跨域。通过代理服务器,把浏览器请求的域名转换过去,浏览器看到的域名都是a.com。

带Cookie的跨域:
Access-Control-Allow-Origin: * 真的能满足所有的跨域需求吗?对Cookie怎么处理?
在这里插入图片描述

Cookie要加在被调用方。
在这里插入图片描述

Access-Control-Allow-Origin: * 不能满足带cookie的请求!
带cookie要在响应头增加一个字段,并设置为true。
在这里插入图片描述

在APACHE/NGINX上进行配置,使用虚拟主机的思想。
在NGINX服务器上增加虚拟服务器的地址。
Apache解决方案,把虚拟主机模块打开,增加一个代理(proxy),把proxy,rewrite模块打开。

调用方解决(隐藏跨域):
当无法修改被调用方时,可以通过该方式解决。
通过反向代理实现,把要调用的服务器做个代理。
在这里插入图片描述

总结:
原因(三个)
解决思路(JSONP的实现原理,支持跨域和隐藏跨域的思想)
解决方法(掌握服务器的相关配置,使用filter如何实现跨域)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值