前端基础(问答23)


keywords: 同源策略、跨域、jsonp。


  • 什么是同源策略(same origin policy)

同源:协议、域名、端口相同
同源策略:为保证用户数据安全而规定的不同源网页彼此间的限制行为,主要有以下3种:
1、cookie、localStorage和indexDB无法读取;
2、DOM无法操作;
3、ajax无法发送;

  • 什么是跨域?跨域有几种实现形式?

跨域:在突破同源策略,在不同源的网页间交换数据。

实现形式:
1、降域,利用document.domain;
2、jsonp;
3、cors;
4、postMessage;
5、hack:比如hash或window.name;

  • jsonp的原理是什么?

jsonp即 json with padding,是利用script加载不同源页面数据的一种方式。

原理:
1、script标签可以引用不同源的数据,比如加载jquery,因此可以利用script加载不同源的数据;
2、利用script加载的数据会被当作js执行,因此,如果和后台约定数据格式,便可以得到不同源的数据;
3、具体来说,在script标签的src属性后面加上查询字符串callback = xxx,后台传回数据,形如xxx(data),我们便可以利用预先定义的xxx函数得到相应数据。

**缺点: **
1、安全性不高,只要得到相应api,每个人都可以得到数据(可以在src中加token提高安全性)。
2、无法向后台写入数据。

  • CORS是什么?

CORS即cross origin resorce sharing(跨域资源共享),允许向跨源服务器发送ajax请求,突破同源策略。

参考:跨域资源共享

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 关于前端跨域的解决方法的多种多样实在让人目不暇接。以前碰到一个公司面试的场景是这样的,好几个人一起在等待面试...
    andreaxiang阅读 492评论 1 4
  • 一、浏览器的同源策略 1.什么是同源? 所谓“同源”指的是”三个相同“。相同的域名、端口和协议,这三个相同的话就视...
    徐国军_plus阅读 868评论 1 3
  • 前言 原文地址:前端跨域总结 博主博客地址:Damonare的个人博客 相信每一个前端er对于跨域这两个字都不会陌...
    秦至阅读 1,415评论 4 51
  • 前言 原文地址:前端跨域总结博主博客地址:Damonare的个人博客 正文 1. 什么是跨域? 跨域一词从字面意思...
    yo_yo_阅读 505评论 0 5
  • 爱情从来不是爱得太早或者爱得太晚,而是爱得刚刚好。世界上最珍贵的并不是华丽的装饰、珍贵的珠宝、很多很多的金钱,而是...
    美丽文静2阅读 1,572评论 2 2