时间:2021-05-25
1.json与jsonp的引入
在ajax中 JSON用来解决数据交换问题,而JSONP来实现跨域。
备注:跨域也可以通过服务器端代理来解决;
理解:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。
2.JSON:是一种基于文本的数据交换方式,或者叫做数据描述格式,是否该选用它首先肯定要关注它所拥有的优点。
JSON的优点:
JSON的格式或者叫规则:
JSON能够以非常简单的方式来描述数据结构,XML能做的它都能做,因此在跨平台方面两者完全不分伯仲。
只是建议如果客户端没有按日期排序功能需求的话,那么把日期时间直接作为字符串传递就好,可以省去很多麻烦。
3.什么是JSONP
JSONP(JSON with Padding)是资料格式 JSON 的一种“使用模式”,可以让网页从别的网域要资料。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的 <script> 元素是一个例外。利用<script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的 JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
3.1 JSOPN跨域的原理:script标签的src属性,支持跨域;它的基本思想是,网页通过添加一个<script>元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请求后,将数据放在一个指定名字的回调函数里传回来。
3.2 JSOP包含两部分:回调函数和数据,回调函数是在响应到来时应该调用的函数,一般通过查询字符串添加; 数据就是传入回调函数中的JSON数据,确切的说,是一个JSON对象,可以直接访问。
3.3 JSONP的缺点:
1) 只能实现GET,没有POST;
2) 从其他域中加载的代码可能不安全;难以确定JSONP请求是否失败(XHR有error事件),常见做法是使用定时器指定响应的允许时间,超出时间认为响应失败。
为了方便客户端使用数据逐渐形成非正式传输协议jsonp该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住json数据 这样客户端就可以随意定制自己的函数来自动处理返回数据
示列:
4、JSON.stringify()、JSON.parse()、toString()
4.1 JSON.stringify():将入参(JavaScript值)转换为 JSON 字符串;
示列1: let arr = [1,2,3]; JSON.stringify(arr);//"[1,2,3]" typeof JSON.stringify(arr);//"string" 示例2: //判断数组是否包含某对象 let data = [ {name:'echo'}, {name:'听风是风'}, {name:'天子笑'}, ], val = {name:'天子笑'}; JSON.stringify(data).indexOf(JSON.stringify(val)) !== -1;//true //判断两数组/对象是否相等 let a = [1,2,3], b = [1,2,3]; JSON.stringify(a) === JSON.stringify(b);//true4.2 JSON.parse():将JSON字符串转为一个对象;
示列:
let string = '[1,2,3]';
console.log(JSON.parse(string))//[1,2,3]
console.log(typeof JSON.parse(string))//object
4.3 JSON.stringify()与 toString()的区别
let arr = [1,2,3];
JSON.stringify(arr);//'[1,2,3]'
arr.toString();//1,2,3
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用Script元素发送JSONP请求的方法//根据指定URL发送一个JSONP请求//然后把解析得到的相应数据传递给回调函数//在URL中添加一个名为json
本文实例讲述了Jquery解析json字符串及json数组的方法。分享给大家供大家参考。具体如下:解析json字符串、json数组{"ret":0,"msg":
这篇文章主要介绍了GTKtreeview原理及使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下Gt
什么是jsonp?说到jsonp,你可能最先想到JSON;它还真和JSON有关系;JSONP(JSONwithPadding)是JSON的一种“使用模式”,可用
本文实例讲述了JavaScript解析及序列化JSON的方法。分享给大家供大家参考,具体如下:JSON之所以这么流行,是因为JSON数据结构可以被解析为Java