跨域问题,何为跨域?-九五小庞


何为跨域?

跨域,指的是从一个域名去请求另外一个域名的资源。即跨域名请求!跨域时,浏览器不能执行其他域名网站的脚本,是由浏览器的同源策略造成的,是浏览器施加的安全限制。

例如:a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。

同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;


具体理解:

http://www.123.com --> http://www.123.com 非跨域

http://www.123.com --> http://admin.123.com 跨域 ----> 域名不同

http://www.123.com --> http://www.456.com 跨域 ----> 域名不同

http://www.123.com:8081 --> http://www.funtl.com:8080 跨域 ---->端口号不同

http://www.123.com --> https://www.123.com 跨域 ----->协议不同

为什么要跨域?

现实工作开发中经常会有跨域的情况,因为公司会有很多项目,也会有很多子域名,各个项目或者网站之间需要相互调用对方的资源,避免不了跨域请求。

如何解决跨域

最简单的解决方法,就是把浏览器设为忽略安全问题,设置--disable-web-security。不过只能用于开发pc端的页面,到移动端就不行了。


1、JSONP(JSON with Padding)方式,

它是JSON的一种”使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,两个跨域的网页不能进行沟通,而 HTML 的script 元素是一个例外。所以利用