json与jsonp知识小结(推荐)


Posted in Javascript onAugust 16, 2016

json

1. json 的值可以是下面这些类型:

① 数字(整数或浮点数),比如123,1.23

② 字符串(在双引号中)

③ 逻辑值(true 或 false)

④ 数组(在方括号中)

⑤ 对象(在花括号中)

⑥ null

2. json解析方法

① eval('(' + jsondata + ')' ); 使用时永远是不安全的,代码注入

② JSON.parse(jsondata);

JSONLint json:字符串校验工具

3. jQuery 实现ajax

jQuery.ajax([settings])

type :类型

url :发送请求的地址

data :是一个对象,连同请求发送到服务器的数据

dataType :预期服务器返回的数据类型,如果不指定,jQuery 将自动根据HTTP包MIME信息来智能判断,一般我们采用json 格式,可以设置为”json”

success :是一个方法,请求成功后的的回调函数,传入返回后的数据,以及包含成功代码的字符串

error :是一个方法,请求失败时调用此函数。传入 XMLHttpRequest 对象

jsonp

跨域

一个域名地址的组成:

http://www .abc.com :8080 / scripts/jquery.js

协议://子域名. 主域名 :端口号 / 请求资源地址

当协议、子域名、主域名、端口号中任意一个不行同时,都算作不同域

不同域之间相互请求资源,就算作“跨域”

javascript 出于安全方面的考虑,不允许跨域调用其他页面的对象。

什么是跨域呢? 简单的解释就是因为javascript同源策略的限制,a.com 域名下的js无法操作b.com 或是 c.a.com域名下的对象

处理跨域方法:

—— 代理(属于后台技术)比如在北京的web服务器的后台来调用上海服务器的服务,看然后再把响应结果返回给前端,这样前端调用北京同域名的服务器就和调用上海的服务效果相同了。

—— JSONP

a域名去声明,b域名去调用

注意:JSONP只能用于GET 请求,不支持POST请求(局限性)

—— XHR2

HTML5 提供的XMLHttpRequest Level2 已经实现了跨域访问以及其他的一些新功能

IE10 以下的版本都不支持

在服务端做一些小小的改造即可:

header("Access-Control-Allow-Origin:"); 表示所有的服务器都可以访问,也可以替换成特定的域名,比如说:服务器在上海,*换成北京服务器的域名,这样只有从北京的域名才可以访问

header("Access-Control-Allow-Methods:POST,GET");

下面说下jsonp 的优缺点。

同源策略 :即JavaScript只能访问与包含它的文档在同一域下的内容。jsonp可以跨越同源策略,当我们使用了jsonp,将会是另外一种协议通信了。

JSONP的优点是:它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制;它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持;并且在请求完毕后可以通过调用callback的方式回传结果。

JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。

以上所述是小编给大家介绍的json与jsonp知识小结(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js 实现无干扰阴影效果 简单好用(附文件下载)
Dec 27 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
May 14 Javascript
分享网页检测摇一摇实例代码
Jan 14 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
jQuery DOM节点的遍历方法小结
Aug 15 jQuery
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
Dec 19 Javascript
微信小程序自定义导航栏实例代码
Apr 05 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
js轮播图之旋转木马效果
Oct 13 Javascript
VUE-ElementUI 自定义Loading图操作
Nov 11 Javascript
浅谈JS继承_借用构造函数 & 组合式继承
Aug 16 #Javascript
JS读写CSS样式的方法汇总
Aug 16 #Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
Aug 16 #Javascript
jQuery EasyUI Tab 选项卡问题小结
Aug 16 #Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 #Javascript
js 自带的 map() 方法全面了解
Aug 16 #Javascript
JavaScript实战之带收放动画效果的导航菜单
Aug 16 #Javascript
You might like
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
php模板中出现空行解决方法
2011/03/08 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
JavaScript 事件系统
2010/07/22 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python线程锁(thread)学习示例
2013/12/04 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
如何通过python画loss曲线的方法
2019/06/26 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
党员个人思想汇报
2013/12/28 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
学习教师法的心得体会
2014/09/03 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫