JSONP_跨域

2017-08-24  本文已影响0人  Jeff12138

1、什么是同源策略?

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


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


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 请求没有任何区别,代码也完全一样。

上一篇 下一篇

猜你喜欢

热点阅读