// 同源策略
// 是一种约定,
// 它是浏览器最核心也最基本的安全功能,
// 如果缺少了同源策略,则浏览器的正常功能可能都会受到影响
// 一个完整的URL包括模式(或称协议)、服务器名称(或IP地址)、路径和文件名。
// 有三个标签允许跨域加载,浏览器不会限制
// <img src="">
// 但是,图片提供方可以通过判断请求url是否属于公司内部域名,来确定是否返回正确图片(比如百度图片设置,仅百度可见),以此来做防盗链处理
// <img>可以用来打点统计,统计网站可能是其他域
// <link href="">
// 链接css
// <script src=""></script>
// 链接js
// <link>和<script>可以使用cdn,cdn也是其他域
端口号不同(){
// 需要通过后台proxy来解决,具体方式如下:
// a、在发起方的域下创建proxy程序
// b、发起方的js调用本域下的proxy程序
// c、proxy将请求发送给接收方并获取相应数据
// d、proxy将获得的数据返回给发起方的js
}
协议不同(){
// 需要通过后台proxy来解决,具体方式如下:
// a、在发起方的域下创建proxy程序
// b、发起方的js调用本域下的proxy程序
// c、proxy将请求发送给接收方并获取相应数据
// d、proxy将获得的数据返回给发起方的js
}
域名不同(){
// jsonp的核心则是动态添加<script>标签来调用服务器 提供的js脚本。
// 使用script标签实现跨域访问,可在url中指定回调函数,获取JSON数据并在指定的回调函数中执行jquery实现jsop。
// 缺点:只支持GET方式的jsonp实现,是一种脚本注入行为存在一定的安全隐患。如果返回的数据格式有问题或者返回失败了,并不会报错。
// 2 iframe 是一个标签 后面有src属性
// src调用其他的域
// 3 服务器代理方式
// 后端是不存在跨域的
// 4 postmessage(对象,哪个域 不用具体写哪个文件)
// (html5提供的一种新方式)
}
主域和子域(){
// 1、document.domain+iframe(只能解决情况1):
// a、在发起方页面和接收方页面设置document.domain,并将值设为父域的主域名(window.location.hostname)
// b、在发起方页面创建一个隐藏的iframe,iframe的源是接收方页面
// c、根据浏览器的不同,通过iframe.contentDocument || iframe.contentWindow.document来获得接收方页面的内容
// d、通过获得的接收方页面的内容来与接收方进行交互
// 这种方法有个缺点,就是当一个域被攻击时,另一个域会有安全漏洞出现。
// src是不存在跨域的
}