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 相关文章推荐
拖动Html元素集合 Drag and Drop any item
Dec 22 Javascript
jQuery chili图片远处放大插件
Nov 30 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
Mar 04 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
Apr 07 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 Javascript
JavaScript知识点整理
Dec 09 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
Apr 23 Javascript
jquery获取input type=text中的值的各种方式(总结)
Dec 02 Javascript
移动端点击态处理的三种实现方式
Jan 12 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
vue.js 解决v-model让select默认选中不生效的问题
Jul 28 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
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
PHP消息队列用法实例分析
2016/02/12 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
Python中DJANGO简单测试实例
2015/05/11 Python
Python selenium 三种等待方式解读
2016/09/15 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
深入理解Python3 内置函数大全
2017/11/23 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
Python修改DBF文件指定列
2020/12/19 Python
环境科学专业个人求职的自我评价
2013/11/28 职场文书
软件售后服务承诺书
2014/05/21 职场文书
2015年团支书工作总结
2015/04/03 职场文书
项目验收申请报告
2015/05/15 职场文书
docker 制作mysql镜像并自动安装
2022/05/20 Servers
Python中的 No Module named ***问题及解决
2022/07/23 Python