美文网首页
同源策略、跨域

同源策略、跨域

作者: 盖被吹空调 | 来源:发表于2016-08-23 15:53 被阅读0次

什么是同源策略##

同源策略是浏览器最基本的功能,同源指得是相同的域名、协议和端口号,不同的源的客户端脚本在没有明确授权的情况下,无法相互读取对方的资源称之为同源策略。

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

跨域即突破同源策略限制的方法,并且都需要得到服务端的支持,有如下几种形式:

JSONP:html中script标签可以引入其他域下的js,比如引入线上的jquery库。

  • 创建script标签,src的地址执行后端接口,最后加个参数callback=function,其中function为本地定义的处理后端数据的函数
  • 服务端在收到请求后,解析参数,计算返还数据,输出 function(data) 字符串
  • function(data)会放到script标签做为js执行。此时会调用function函数,将data做为参数

CORS:CORS 的表象是让你觉得它与同源的 ajax 请求没啥区别,代码完全一样。

  • 当使用 XMLHttpRequest 发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin
  • 后台进行一系列处理,如果确定接受请求则在返回结果中加入一个响应头:Access-Control-Allow-Origin;如果其值包含域名或者 “”号。“”号表示允许任何域名向我们的服务端提交请求
  • 浏览器判断该相应头中是否包含 Origin 的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。

降域

使用document.domain的方法实现相同基础域名之间的跨域
例:有三个域名
a.test.com
b.test.com
test.com
可在a.test.com和b.test.com加入document.domain = "test.com"实现以上三个域名之间的跨域。

postmessage

postmessage为window的方法,可实现跨文档、多窗口、跨域消息的传递,postMessage(data,origin)方法接受两个参数,data是要传递的数据,origin是目标的源
参考参考:http://www.cnblogs.com/dolphinX/p/3464056.html

同源策略及跨域出错演示##

同源策略.png 跨域出错.png

JSONP跨域及CORS跨域演示##

JSONP跨域.png CORS跨域.png

相关文章

  • H5跨域访问

    跨域访问是源于浏览器的同源策略而引申出来的概念 1、先了解什么是同源策略和跨域访问 同源策略、跨域解决方案 - R...

  • H5 知识点 - 收藏集 - 掘金

    跨域解决方案总结 - 前端 - 掘金为什么需要跨域? 就得先知道同源策略. 同源策略 同源策略是为了保证数据的安全...

  • 通过script标签实现跨域

    跨域 什么是跨域? 跨域问题是由于javascript语言安全限制中的同源策略造成的。同源策略是由Netscape...

  • 前端基础(问答23)

    keywords: 同源策略、跨域、jsonp。 什么是同源策略(same origin policy) 同源:协...

  • 有关跨域的相关问题和方法

    跨域是什么 同源策略 在讲解什么是跨域之前先要清楚什么是同源策略,“同源政策”(same-origin polic...

  • 同源策略,跨域请求处理

    跨域访问 - 跨域请求 同源策略 适用于浏览器的一种资源访问策略;同源策略(Same origin policy)...

  • 无星的Egg之旅(一)——跨域

    先说点老生常谈的问题 啥是跨域 1.同源策略 要了解跨域,先要说说同源策略。同源策略是由 Netscape 公司提...

  • 同源策略和跨域

    什么是跨域问题? 为什么会出现跨域问题? 因为浏览器的同源策略(同源指的是:协议+域名+端口相同)。 同源策略是浏...

  • 跨域

    什么是跨域? 说跨域之前先要谈几个概念。跨域问题要从同源策略谈起,那什么是同源策略呢?同源是下面三项都相同,缺一不...

  • 跨域

    主要内容: 同源策略、跨域实现形式(JSONP、CORS、降域、postMessage) 同源策略 (Same o...

网友评论

      本文标题:同源策略、跨域

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