美文网首页
JSONP_跨域

JSONP_跨域

作者: Jeff12138 | 来源:发表于2017-08-24 20:17 被阅读0次

    1、什么是同源策略?

    同源策略,即Same origin policy,它是所有支持JavaScript的浏览器都会使用的一种安全策略。
    所谓同源,指的是同协议、同域名、同端口。不同源的客户端脚本在没有明确授权的情况下,不能读写对方的资源。


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

    • 由于同源策略的存在,我们的浏览器不能执行其他网站的脚本,这时候就需要用到跨域。
      简言之,跨域就是在不同源的情况下,通过某一个域名的网页去请求另一个域名的资源。其中,只要协议、域名、端口中有任何一个是不同的,就被视为是跨域。
    • 一般来说,跨域有包括JSONP、CORS、降域、postMessage等在内的四种实现形式。

    3、JSONP 的原理是什么?

    JSONP,即JSON Padding, 其原理是利用<script>标签中src属性的链接没有跨域限制的特性,达到与第三方通讯的目的。
    当我们需要进行跨域通讯时,可以先创建一个<script>标签元素,地址指向第三方的API网址,并提供一个回调函数来接收数据。第三方产生的响应为JSON数据的包装,这样浏览器就会调用callback函数,并传递解析后的JSON对象作为参数。本站的脚本就可以在callback函数里处理所传入的数据了。


    4、CORS是什么?

    CORS的全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。
    当我们使用 XMLHttpRequest 发送请求时,浏览器如果发现该请求不符合同源策略,会给该请求加一个请求头:Origin;后台在经过一系列的处理后,如果确定接受该请求,则会在返回的结果中加入一个响应头:Access-Control-Allow-Origin。
    浏览器会自动判断该响应头中是否包含 Origin 的值。如果包含,则浏览器会处理该响应,我们就可以拿到响应数据;如果不包含,浏览器会直接驳回,我们就无法拿到响应数据了。
    所以 CORS 的表象会让你觉得它与同源的 ajax 请求没有任何区别,代码也完全一样。

    相关文章

      网友评论

          本文标题:JSONP_跨域

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