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 instanceof 的使用方法示例介绍
Oct 23 Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 Javascript
JavaScript实现图片轮播的方法
Jul 31 Javascript
jquery动态导航插件dynamicNav用法实例分析
Sep 06 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
如何使用headjs来管理和异步加载js
Nov 29 Javascript
Vue.js中用v-bind绑定class的注意事项
Dec 13 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 Javascript
微信小程序实现换肤功能
Mar 14 Javascript
IE9 elementUI文件上传的问题解决
Oct 17 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
详解vue组件之间的通信
Aug 30 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/06/03 PHP
探讨如何把session存入数据库
2013/06/07 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
2017/04/20 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
解决vue attr取不到属性值的问题
2018/09/18 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python变量和数据类型详解
2017/02/15 Python
Python虚拟环境项目实例
2017/11/20 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python 的AES加密与解密实现
2019/07/09 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
Python递归函数特点及原理解析
2020/03/04 Python
Django如何使用redis作为缓存
2020/05/21 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
幼儿园秋游活动方案
2014/01/21 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书