JSONP(dubbo)

一 定义

是JSON的一种"使用模式"
非正式的传输协议

二 核心原理

 就是目标页面回调本地页面的方法 , 并带入参数
 使用方法回调的原理
 HTML的<script>元素是一个例外 , 利用<script>元素的这个开发策略(src属性) , 网页可以得到从其他来源动态产生的JSON资料 
 用JSONP找到的资料并不是JSON , 而是任意的JavaScript , 用JavaScript直译器而不是 用JSON解析器解析

三 为什么需要JSONP

 由于浏览器安全限制 , 数据是不可以直接跨域(包括不同的根域名 , 二级域名 , 或不同的端口)请求的 , 除非目标域名授权你可以访问

四 解决的问题

可用于解决主流浏览器的跨域数据访问问题
为了便于客户端使用数据

五 实现跨域思路

 1 利用javaScript中的src属性可以实现跨域访问

 2 定义回调函数 ,
   定义callback回调函数

 3 返回值必须经过特殊的格式封装callback(JSON)

六 JSONP的产生

1 跨域问题

   众所周知 , Ajax直接请求普通文件存在跨域无权限访问的问题

2 JS文件

   Web页面上调用js文件时则不受是否跨域的影响(不仅如此 , 我们还发现凡是拥有"src"这个属性的标签都拥有跨域的能力)

3 远程服务器与JS

   于是可以判断 , 当前阶段如果想要通过纯web端跨域访问数据就只有一种可能 , 那就是在远程服务器上设法把数据装进js格式的文件里 , 供客户端调用和进一步处理

4 JSON

   恰巧我们知道有一种叫做json的纯字符数据格式可以简介的描述复杂的数据 , 更巧妙的是json还被原生支持 , 所以在客户端可以随心所欲的处理这种格式的数据

5 解决方案

   这样子解决方案就出来了 , web客户端通过与调用脚本一模一样的方式 , 来调用跨域服务器上的动态生成的js格式文件(一般以JSON为后缀) , 显而易见 , 服务器之所以要动态生成JSON文件 , 目的就在于把客户端需要的数据封装进去

6 客户端调用json

   客户端在对json文件调用成功之后 , 也就获得了自己需要的数据 , 剩下的就是按照自己需求进行处理和展示 , 这种获取远程数据的方式看起来很像AJAX  ,但其实并不一样

7 JSONP诞生

   为了便于客户端使用数据 , 逐渐形成了一种非正式的传输协议  ,人们把他称作JSONP  
   该协议的要点就是允许用户传递一个callback参数给服务器 , 然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据 , 这样客户端就可以随意定制自己的函数来自动处理返回的数据了
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值