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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29787335/article/details/79705381

今天我学习了一下跨域的问题,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就不会有跨域的问题了.







猜你喜欢

转载自blog.csdn.net/qq_29787335/article/details/79705381