美文网首页
JSONP_跨域

JSONP_跨域

作者: 七_五 | 来源:发表于2017-05-20 16:19 被阅读0次

    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

    相关文章

      网友评论

          本文标题:JSONP_跨域

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