跨域就是同源策略的限制,同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。
同源:URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同则表示他们同源,就是一个域。
同源策略:浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性,从一个域上加载的脚本不允许访问另外一个域的文档属性。
第一种:jsonp(json+padding):实现原理是利用script标签的src属性可以跨域加载别的域中的文件来实现的。
例如有一个a.com和b.com,现在a.com想访问b.com,在a.com中的一个网页中加入下面的代码:
<script>function aaa(data){//对data进行操作}</script>
<script src="http://www.b,com/test.php?name=lisi&callback=aaa"></script>
在b.com中的test.php中可以接收传递过来的参加name还有callback,然后执行:b.com中执行echo 'callback(要回传给a.com的数据)'
第二种:iframe a域里嵌入b域的页面 b里面在嵌入a的页面在a的这个页面中 通过top的方式访问方法实现跨域。
第三种:服务器代理:因为服务器端程序是不存在跨域问题。
第四种:A上的页面获取B上的资源,浏览器会检查服务器B的HTTP头(HEAD请求),如果Access-Control-Allow-Origin中有A,或者是通配符*,浏览器就会允许跨域,这叫CORS。
本文详细解析了同源策略限制,介绍通过jsonp、iframe、服务器代理和CORS实现跨域的四种常见技巧,帮助开发者掌握在浏览器安全策略下进行数据交互的方法。
848

被折叠的 条评论
为什么被折叠?



