您的位置:首页 > 其它

跨域问题,什么是跨域,怎么解决?

2018-03-27 21:45 302 查看
今天我学习了一下跨域的问题,access-controller-allow-origin
什么是跨域问题?跨域问题发生的原因,
1.浏览器限制,
2.跨域,域名不同,端口号不同,都会发生
3.xhr请求,xmlhttprequest请求
只要满足这三点就一定会发生跨域请求。

误区:一直以来都觉得是因为后台接口的问题导致的跨域,其实不是,和后台无关。
当然,后台也能做这个验证,并导致这个问题。

跨域的解决思路,我们知道了跨域的原因,那么我们也就有了解决跨域的办法,
1.让浏览器不去做校验,就可以不产生跨域,但是这是修改客户端,只适合测试,并不是完美的解决办法
disable-web-security 可以禁止浏览器做跨域的校验.

2.xhr的解决办法,我们都知道jsonp是解决跨域的问题,但是我们却不知道为什么能解决,有哪些好处和不好的地方,目前为止jsonp无法满足现在的开发需求,已经使用的越来越少了。
jsonp的解决办法,是需要修改后台代码的,后台也需要返回jsonp的格式的代码
jsonp的发送的type 是script 不是xhr所以就可以进行跨域了,
jsonp的弊端分析
3.重点,解决跨域的问题,
一.被调用方也就是后台接口修改,从a域名访问b的时候,在返回的字段里告诉浏览器不做跨域校验,就可以了.
1.增加返回的字段就可以了,
2.修改nginx配置
3.修改apache配置
二.调用方修改,使用一个代理,让浏览器觉得每次你都是从b访问的b就不会有跨域的问题了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: