跨域

题目1: 什么是同源策略

浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,不能读写对方的资源。

题目2: 什么是跨域?跨域有几种实现形式

同域:1.协议相同2域名相同3.端口相同
不满足同域三个条件就叫跨域。
实现跨域的方式:
JSONP,缺点不安全只支持get请求.
CORS,兼容性,ie10以上才能用
降域,适用于同一个网站里多个子网站相互请求数据,降到所有孩子用父亲名,就变同域了
postmanager:相互发送消息,要不要随你

题目3: JSONP 的原理是什么

先看例子:

<script src='http:/www.weather.com/weatherApi?hangzhou&callback'></script>
//返回数据后是这种格式
<script>
callback({
    name:hanzhou,
    temperature:42
})
</script>
//我的js中定义了一个callback函数
<script>
function callback(){
//....
}
callback()
</script>//到这里就获得了与我不同域的weather.com传回来的数据并且可以使用

原理:利用页面引用的js可以是不同域的文件这一特性。当然也需要与服务器约好,服务器配合传输数据才能实现。
缺点:有安全隐患,以为接受的数据是直接作为js运行,万一服务器不怀好意传输恶意js代码,那就玩完了,只支持get请求。

题目4: CORS是什么

cors有点像有名字有照片的专属通行证。这个通行证谁看?看门的(浏览器)浏览器发现网页跨域请求后给你加个标签(请求头),origin,服务器看到这个标签后会决定发不发通行证,通行证会有url,浏览器看这个通行证上地址跟你是不是同一人,是给你数据,不是对不起不给,就不给。为什么要这样做,看门的当然是为了安全。

官方解释: CORS 全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。 实现方式很简单,当你使用 XMLHttpRequest 发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin; 浏览器判断该相应头中是否包含 Origin 的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。所以 CORS 的表象是让你觉得它与同源的 ajax 请求没啥区别,代码完全一样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言:对于跨域请求,很早之前就有去了解过,但因为一直关注的都是服务器后端开发,故也就仅仅停留在概念的理解上而没有机...
    ken_ljq阅读 90,147评论 6 128
  • 欢迎关注微信公众号:全栈工厂 本文主要参考跨域资源共享 CORS 详解[http://www.ruanyifeng...
    liqingbiubiu阅读 5,987评论 0 3
  • 什么是同源策略 同源政策(same-origin policy)是指同域名(或ip),同端口,同协议视为同一个域,...
    小囧兔阅读 3,741评论 0 1
  • 一、浏览器的同源策略 1.什么是同源? 所谓“同源”指的是”三个相同“。相同的域名、端口和协议,这三个相同的话就视...
    徐国军_plus阅读 4,351评论 1 3
  • 一杯浓的生普,绕不过去的苦,如期而至的醇。不知道从何时开始,它们已经于我凝集成一种化不开的情愫。即便是伴随着...
    蘸心向暖阅读 3,043评论 0 0

友情链接更多精彩内容