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 相关文章推荐
setTimeout和setInterval的区别你真的了解吗?
Mar 31 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
Jan 11 Javascript
jQuery的DOM操作之删除节点示例
Jan 03 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
Aug 25 Javascript
分享网页检测摇一摇实例代码
Jan 14 Javascript
AngularJS表格详解及示例代码
Aug 17 Javascript
JS解决position:sticky的兼容性问题的方法
Oct 17 Javascript
p5.js入门教程之平滑过渡(Easing)
Mar 16 Javascript
vue.js实现三级菜单效果
Oct 19 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
Vue实现计算器计算效果
Aug 17 Javascript
基于JavaScript实现简单扫雷游戏
Jan 02 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
基于php验证码函数的使用示例
2013/05/03 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
Javascript Object.extend
2010/05/18 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
js中的闭包实例展示
2018/11/01 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
python插入数据到列表的方法
2015/04/30 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
python线程池threadpool实现篇
2018/04/27 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
新手学python应该下哪个版本
2020/06/11 Python
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
年终自我鉴定
2013/10/09 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
房屋认购协议书
2015/01/29 职场文书
色戒观后感
2015/06/12 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS