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 相关文章推荐
jQuery图片预加载 等比缩放实现代码
Oct 04 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
Mar 08 Javascript
Vue方法与事件处理器详解
Dec 01 Javascript
详解微信小程序 wx.uploadFile 的编码坑
Jan 23 Javascript
vue绑定设置属性的多种方式(5)
Aug 16 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
Mar 07 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
May 16 Javascript
Vue的自定义组件不能使用click方法的解决
Jul 28 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 Javascript
vue实现简易计算器功能
Jan 20 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
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
php实现求相对时间函数
2015/06/15 PHP
为你总结一些php信息函数
2015/10/21 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
jquery easyui validatebox remote的使用详解
2016/11/09 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
详解K-means算法在Python中的实现
2017/12/05 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
python常用运维脚本实例小结
2020/02/14 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
精细化工应届生求职信
2013/11/17 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
西安大雁塔导游词
2015/02/10 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
带你学习MySQL执行计划
2021/05/31 MySQL