JSONP_跨域

1. 什么是同源策略

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

2. 什么是跨域?跨域有几种实现形式
  • 什么是跨域:“域”就是看当前所在页面的URL和所要请求的URL是否是同协议、同域名、同端口,是的话就是同域(或本域),否的话就是跨域。
  • 跨域有四种方式

(1)JSONP
利用在页面中创建<script>节点的方法向不同域提交HTTP请求的方法称为JSONP。
JSONP的最基本的原理是:动态添加一个<script>标签,而script标签的src属性是没有跨域的限制的。这样说来,这种跨域方式其实与ajax XmlHttpRequest协议无关了 参考文章
JSONP的优点是:它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制;它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持;并且在请求完毕后可以通过调用callback的方式回传结果。
JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。

(2)CORS
CORS(Cross-Origin Resource Sharing)跨来源资源共享是一份浏览器技术的规范。
CORS背后的基本思想是使用自定义的HTTP头部允许浏览器和服务器相互了解对方,从而决定请求或响应成功与否。
优点:简单,支持所有类型的HTTP请求
缺点:只支持现代浏览器 及IE10以上

(3)降域

什么是降域?举例:只有在两个域名是协议相同、端口相同、二级域名相同的情况下,使用document.domain="huangyh.com"降域,都只取域名的huangyh.com这部分,形同同域,然后在a.html和b.html都可以使用window对象对彼此进行dom操作

(4)postMessage
window.postMessage 是一个用于安全的使用跨源通信的方法,postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档、多窗口、跨域消息传递。

3.四种跨域方式实例

实例

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

相关阅读更多精彩内容

  • JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaScript中,有一个很重要的...
    西瓜w阅读 5,796评论 0 1
  • 什么是同源策略 同源政策(same-origin policy)是指同域名(或ip),同端口,同协议视为同一个域,...
    小囧兔阅读 3,741评论 0 1
  • 1.什么是同源策略浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,不...
    24_Magic阅读 3,538评论 0 0
  • 1: 什么是同源策略 最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源",所谓...
    好奇而已阅读 2,593评论 0 0
  • 1: 什么是同源策略 同源策略(Same origin policy)是一种约定,是浏览器最核心也最基本的安全功能...
    任少鹏阅读 1,756评论 0 1

友情链接更多精彩内容