美文网首页
进阶任务十三

进阶任务十三

作者: 饥人谷_迪 | 来源:发表于2017-12-18 17:24 被阅读0次

题目1: 什么是同源策略

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

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

  • 跨域:即在不同的域(协议、域名、端口中的任意一个不同)之间发起请求。

实现方法:

  1. jsonp
  • JSONP是通过script标签加载数据的方式去获取数据当做JS代码来执行, 提前在页面上声明一个函数, 函数名通过接口传参的方式传给后台, 后台解析到函数名后, 在原始数据上[包裹]这个函数名, 发送给前端。换句话说, JSONP需要对应接口的后端配合才能实现。
  1. CORS
  • CORS 全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。 实现方式很简单,当你使用 XMLHttpRequest 发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin; 浏览器判断该相应头中是否包含 Origin 的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。所以 CORS 的表象是让你觉得它与同源的 ajax 请求没啥区别,代码完全一样。
  1. 降域
  • 对主域名相同而子域名不同的网址可使用降域,需要在两个站点的根域设置document.domain属性:document.domain="a.com",配合iframe标签实现。
  1. psotMessage
  • html5引入的postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文文档、多窗口、跨域消息传递。

题目3: JSONP 的原理是什么

  • JSONP是通过script标签加载数据的方式去获取数据当做JS代码来执行, 提前在页面上声明一个函数, 函数名通过接口传参的方式传给后台, 后台解析到函数名后, 在原始数据上[包裹]这个函数名, 发送给前端。换句话说, JSONP需要对应接口的后端配合才能实现。

题目4: CORS是什么

  • CORS全称是跨域资源共享(Cross-Origin Resource sharing), 是一种ajax跨域请求资源的方式, 支持现在浏览器, IE10+,使用XMLHttpRequest发请求时,浏览器若判断请求非同源, 会给该请求加一个请求头: Origin, 后台接到Origin经过处理后,如果要接受请求则返回时加一个Access-Control-Allow-Origin响应头, 有这个响应头的话, 浏览器就会处理响应体, 我们就可以接收到响应, 没有就按照老办法拒绝接收. 对于前端来说, 发送请求跟普通ajax方法无异。

题目5: 根据视频里的讲解演示三种以上跨域的解决方式 ,写成博客

相关文章

  • 进阶任务十三

    题目1: 什么是同源策略 浏览器出于安全方面的考虑,只允许本域下的接口交互。不同源的客户端脚本在没有明确授权的情况...

  • 进阶任务十三-跨域

    什么是同源策略同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的...

  • Swift多线程:GCD进阶,单例、信号量、任务组

    Swift多线程:GCD进阶,单例、信号量、任务组 Swift多线程:GCD进阶,单例、信号量、任务组

  • 任务十三

    看到这幅图,我想到了很多。 人这一辈子总会被别人在背后评说,也总会被别人不理解。 而有一些人也总是把评论别人当成自...

  • 任务十三

    1.说一说你平时写代码遵守的编码规范 代码规范链接 常见命名 wrap 或 wrapper 用于外侧包裹 ct 或...

  • 任务十三

    这两天光顾着带孩子,自己的时间没有能安排好。忘了记录女儿昨天去幼儿园面试的情况,现在简单说一下。 我和她爸陪同,入...

  • 任务十三

    http://study.163.com/course/courseMain.htm?courseId=43200...

  • 任务十三

    任务十三 烂笔头不如懂记忆 一 准备 绘制主干和关键词

  • 进阶-任务2

    1、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么? ...

  • 进阶-任务2

    1、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么? ...

网友评论

      本文标题:进阶任务十三

      本文链接:https://www.haomeiwen.com/subject/icryixtx.html