美文网首页饥人谷技术博客
日夜谈——同源策略与跨域

日夜谈——同源策略与跨域

作者: Sheldon_Yee | 来源:发表于2017-01-27 21:19 被阅读61次
1.什么是同源策略

同domain即域名(或ip),同端口,同协议视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写本域内的资源,而无法访问其它域的资源。这种安全限制称为同源策略。

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

跨域是指从一个域名的网页去请求另一个域名的资源。比如从http://www.baidu.com/ 页面去请求 http://www.google.com 的资源。跨域的严格一点的定义是:只要一个源向另一个 协议,域名,端口有任何一个的不同的源请求资源,就被当作是跨域。

跨域实现形式:

  1. JSONP
  2. CORS:跨域资源共享(Cross-Origin Resource Sharing)
  3. 降域
  4. postMessage()
3. JSONP 的原理是什么

JSONP基本思想是,网页通过添加一个<script>元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请求后,将数据放在一个指定名字的回调函数里传回来,之后有例子。

4. CORS是什么

CORS的全称是Cross-Origin Resources Sharing,它允许浏览器向跨源服务器,发出请求,从而克服了AJAX只能同源使用的限制。
原理
<li>CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10;
<li>整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。
<li>实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

5.实现跨域的一些方法
JSONP实现
jsonp.png

JSONP demo

CROS实现
CROS.png

代码

降域实现
降域.png

代码

postMessage实现
postMessage.png
代码

感谢瓜子观众:


版权归饥人谷peter和饥人谷所有,若有转载,请注明来源

相关文章

  • 前端开发的跨域问题

    跨域背景 跨域是由于浏览器的同源策略引起的;那么什么是同源策略呢?同源策略是指页面请求的接口地址必须与 url 地...

  • 日夜谈——同源策略与跨域

    1.什么是同源策略 同domain即域名(或ip),同端口,同协议视为同一个域,一个域内的脚本仅仅具有本域内的权限...

  • H5跨域访问

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

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

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

  • 通过script标签实现跨域

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

  • 前端基础(问答23)

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

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

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

  • 网页请求(同源策略)

    跨域与同源策略 跨域:是指的通过JS在不同域之间进行数据传输或通信。同源策略:它是由Netscape提出的一个著名...

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

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

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

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

网友评论

    本文标题:日夜谈——同源策略与跨域

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