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 相关文章推荐
微博@符号的用户名提示效果。(想@到谁?)
Nov 05 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
怎么清空javascript数组
May 11 Javascript
jQuery原生的动画效果
Jul 10 Javascript
javascript+HTML5自定义元素播放焦点图动画
Feb 21 Javascript
mongoose中利用populate处理嵌套的方法
May 26 Javascript
基于AngularJS实现的工资计算器实例
Jun 16 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
基于vue和react的spa进行按需加载的实现方法
Sep 29 Javascript
vue中的router-view组件的使用教程
Oct 23 Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 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实时倒计时功能实现方法详解
2017/02/27 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
jQuery ui 1.7更新小结
2009/08/15 Javascript
javascript 一些用法小结
2009/09/11 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python遍历目录的4种方法实例介绍
2015/04/13 Python
发布你的Python模块详解
2016/09/15 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
学习Django知识点分享
2019/09/11 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
什么是事务?为什么需要事务?
2012/01/09 面试题
params有什么用
2016/03/01 面试题
大学优秀班主任事迹材料
2014/05/02 职场文书
2015年幼师工作总结
2015/04/28 职场文书
小学运动会宣传稿
2015/07/23 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
Win11开始菜单添加休眠选项
2022/04/19 数码科技
解决 redis 无法远程连接
2022/05/15 Redis
Mysql数据库group by原理详解
2022/07/07 MySQL