JSONP_跨域

1、同源策略

同源策略是众多的安全策略之一,是在web层面上的策略。同源策略规定:
不同域的客户端脚本在没有明确授权的情况下,不能读写对方的资源,注意关键词:不同域、客户端脚本、授权、读写、资源

  • 不同域:同域指的是要求两个站点同协议、同域名、同端口,如判断下列站点与http://www.foo.com是否同域?
https://www.foo.com             不同域(协议不同)
http://team.foo.com             不同域(team子域与www子域不同)
http://foo.com                  不同域(顶级域与www子域不是一个概念)
http://www.foo.com              不同域(端口不同,默认为80端口)
http://www.foo.com/a            同域
  • 客户端脚本:一般指JavaScript
  • 授权:HTML5标准中关于Ajax跨域访问的情况,默认情况下是不允许跨域访问的,只有目标站点(默认http://www.foo.com) 明确的返回HTTP响应头Access-Control-Allow-Origin:http://www.foo1.com,那么www.foo1.com站点上的客户端脚本就有权通过Ajax对目标站点(www.foo.com)上的数据进行读写操作
  • 读写权限:web上的资源很多,有的只有读权限,有的同时有读写权限。如请求头的Referer只读,而document.cookie具备读写权限,这主要是从安全的角度区分的
    -资源:同源策略中资源指的是客户端的资源,常见的有HTTP消息头、DOM树、浏览器存储等。在同一个域内,客户端的脚本可以任意读写同域内的资源,前提是这个资源是可读写的

2、 跨域和跨域有几种实现形式?

跨域:允许不同域的接口进行交互
实现形式:JSOP、CORS、降域、postMessage

3、 JSONP 的原理是什么?

客户端
服务端
  • 1、首先在客户端脚本中定义一个数据处理函数fun",
  • 2、在上述定义的脚本中使用DOM创建script标签,src的地址执行后端接口,最后加参数callback=fun",
  • 3、服务端在收到请求,解析参数,返回fun(data)字符串",
  • 4、function(data)会放在script标签作为js执行,此时调用fun函数,将data作为参数"

4、 CORS

在HTML5标准中关于Ajax跨域访问的情况,默认情况下是不允许跨域访问的,只有目标站点(默认http://www.foo.com) 明确的返回HTTP响应头Access-Control-Allow-Origin:http://www.foo1.com,那么www.foo1.com站点上的客户端脚本就有权通过Ajax对目标站点(www.foo.com)上的数据进行读写操作

5、总结跨域解决方式

https://github.com/joinmouse/hello-world

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

相关阅读更多精彩内容

  • 什么是同源策略 同源政策(same-origin policy)是指同域名(或ip),同端口,同协议视为同一个域,...
    小囧兔阅读 3,751评论 0 1
  • JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaScript中,有一个很重要的...
    西瓜w阅读 5,803评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,282评论 19 139
  • 1.什么是同源策略浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,不...
    24_Magic阅读 3,547评论 0 0
  • 题目1: 什么是同源策略 同源策略(Same Origin Policy): 浏览器出于安全方面的考虑, 只允许与...
    cctosuper阅读 1,873评论 0 1

友情链接更多精彩内容