JSONP_跨域

1、什么是同源策略

同源策略是浏览器出于安全性的考量而制定的策略,默认情况下,XHR对象只能访问与包含它的页面位于同一个域中的资源,即限制了来自不同源的"document"或脚本对当前"document"读取或设置某些属性。
我们知道URL(document.URL)由协议(http/https/file/ftp)、域名(doucment.domain)、端口(port:3000/4000/80/8080)、还有路径组成,如果两个URL的协议、域名、端口(URL组成部分前3个)相同,则表示他们同源。
a)a.b.com a.b.com/a.html 同源,域相同。
b)b.com a.b.com 不同源,域不同。
c)a.b.com:8080 a.b.com/3000 不同源,端口不同。
d)http://a.b.com https://a.b.com 不同源,协议不同

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

跨域:跨域顾名思义就是突破同源策略的限制,去不同的域下访问数据。
实现形式:jsonp、CORS:跨域资源共享(Cross-Origin Resource Sharing)、降域、postMessage()

3、JSONP 的原理是什么

在html下引入script标签是可以请求不同源的数据。那么也就是说同源策略并没有对script的src进行监测,而且script的特性是在页面加载时会访问script的src,那么我们可以将这个src想象成一个简单的get请求,通过访问这个地址,我们可以配合后端对路由进行参数配置,使这段访问的src中加入一些参数,从而灵活的从后端调取数据。我们甚至可以通过访问这个src来调用客户端里存在的方法,比如我们有一个function:

function jsonFn(param) { //do sth }


                    
                    

你可能感兴趣的:(JSONP_跨域)