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 获取所有id中包含某关键字的控件的实现代码
Nov 25 Javascript
利用cookie记住背景颜色示例代码
Nov 04 Javascript
javascript弹出层输入框(示例代码)
Dec 11 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
Aug 10 Javascript
JavaScript基础篇(6)之函数表达式闭包
Dec 11 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 Javascript
JS实现的打字机效果完整实例
Jun 20 Javascript
使用JS编写的随机抽取号码的小程序
Aug 11 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
Jan 02 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
Aug 20 Javascript
React SSR样式及SEO的实践
Oct 22 Javascript
JS正则表达式验证端口范围(0-65535)
Jan 06 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 删除无限级目录与文件代码共享
2008/11/22 PHP
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
php简单统计在线人数的方法
2016/05/10 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
js/jQuery实现全选效果
2019/06/17 jQuery
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
Django实现单用户登录的方法示例
2019/03/28 Python
python实现海螺图片的方法示例
2019/05/12 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Python collections模块使用方法详解
2019/08/28 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
文明寝室申报材料
2014/05/12 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
离婚案件上诉状
2015/05/23 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书