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 相关文章推荐
javascript中的array数组使用技巧
Jan 31 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
Dec 06 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
Mar 21 Javascript
javascript使用闭包模拟对象的私有属性和方法
Oct 05 Javascript
javascript的document中的动态添加标签实现方法
Oct 24 Javascript
JS双击变input框批量修改内容
Dec 12 Javascript
jQuery Pagination分页插件使用方法详解
Feb 28 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
May 11 Javascript
vue-resouce设置请求头的三种方法
Sep 12 Javascript
Vue2.0用户权限控制解决方案的示例
Feb 10 Javascript
jQuery操作事件完整实例分析
Jan 10 jQuery
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
浅谈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/03/20 PHP
PHP实现的sqlite数据库连接类
2014/12/12 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
php实现头像上传预览功能
2017/04/27 PHP
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
Python科学计算环境推荐——Anaconda
2014/06/30 Python
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
python实现按关键字筛选日志文件
2019/12/24 Python
关于Python解包知识点总结
2020/05/05 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
服务中心夜班服务员岗位职责
2013/11/27 职场文书
家长对老师的感言
2014/03/11 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
诚信承诺书
2015/01/19 职场文书
六一活动主持词
2015/06/30 职场文书
高二语文教学反思
2016/02/16 职场文书
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
Vue3.0 手写放大镜效果
2021/07/25 Vue.js