概述
JSONP是一种跨域解决方案(本身是get请求,所以它是一种解决方案不是一种请求方式),主要是利用script标签的src属性不受跨域影响的特性来解决跨域问题的。
同源策略
同源策略是浏览器的一种安全策略(netspace公司提出来的),主要是为了保护对应浏览器的数据安全。
同源策略解决的问题
避免两个不同的网站的数据共享,比如我浏览器打开了京东又打开了淘宝
同源策略的要求
- 协议相同(http!=https)
- 端口号相同(80!=443)
- 域名相同
跨域的产生
在http请求下 协议 端口号 域名不同就会发生跨域 FTP协议下(文件不同也会跨域)
开宇问题的解决方案
-
后端响应添加响应头
Access-control-allow-origin:* Access-control-allow-origin-Method:* -
使用JSONP(JSONP需要后端的配合)
-
使用代理服务(proxy(devserver 开发服务))
-
使用 webscoket 通信
-
postmessage
JSONP的实现
- jsonp他主要利用的是script标签不受跨域的影响的特性来实现的
- 它是通过script来链入对应的请求地址 传入对应的回调函数 通过访问的时候,后端去执行这个回调函数填入对应的值,所以我们可以通过回调函数的形参来接收返回的数据
特性
- jsonp本质上是一个get请求
- jsonp需要后端配合来进行跨域操作