json与jsonp知识小结(推荐)
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知识小结(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
深入浅析Jsonp解决ajax跨域问题
一.介绍 最近跨域问题比较多,而且自己刚好也看到这一块,就总结了一下,关于JSONP的东西百度的话东西确实很多,很多人都是复制别人的,如此下去,其实找的资料就那么几份,关键是我还看不懂,可能是能力问题吧,自己经过很多尝试,所以总结了一下,终究还是弄懂了皮毛.注意一点是,这里是用Jsonp解决ajax的跨域问题,具体的实现其实不是ajax. 1.同源策略 浏览器有一个很重要的概念--同源策略(Same-Origin Policy).所谓同源是指,域名,协议,端口相同.不同源的客户端脚本(JavaS
-
AJAX实现跨域的三种方法(代理,JSONP,XHR2)
域: 域是WIN2K网络系统的安全性边界.我们知道一个计算机网最基本的单元就是"域",这一点不是WIN2K所独有的,但活动目录可以贯穿一个或多个域.在独立的计算机上,域即指计算机本身,一个域可以分布在多个物理位置上,同时一个物理位置又可以划分不同网段为不同的域,每个域都有自己的安全策略以及它与其他域的信任关系.当多个域通过信任关系连接起来之后,活动目录可以被多个信任域域共享. 由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只
-
浅析JSONP解决Ajax跨域访问问题的思路详解
前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现方法有多种,本例采用jQuery+Ajax,完成后,在本地调试了一切ok,但是部署到服务器上以后就出现问题了,后台服务调用没有响应,怎么回事?代码没怎么改动,唯一修改的地方就是jQuery的ajax方法中的url地址.难道是这里的问题,经过检查和调试,发现原来是同源策略在作怪,我们知道,JavaScript或jQuery是在Web前端开发中经常使用的动态脚本技术.在JavaScript中,有一个很重要
-
Node.js返回JSONP详解
在使用JQuery的Ajax从服务器请求数据或者向服务器发送数据时常常会遇到跨域无法请求的错误,常用的解决办法就是在Ajax中使用JSONP.基于安全性考虑,浏览器会存在同源策略,然而<script/>标签却具有跨域访问数据的能力,这就是JSONP工作的基本原理.有关同源策略以及什么是JSONP. 在Node.js中实现JSONP非常简单,通过下面的代码我们从服务器返回并运行一个JavaScript函数,这个JavaScript函数已经在调用方提前被定义好了,于是当它被返回的时候就自动执行了.
-
JSONP和批量操作功能的实现方法
推荐一个好用的在线 Markdown 编辑器,比我自己用 Python 编译成 markdown 要方便多了. [http://mahua.jser.me] markdown简明语法教程 [http://www.appinn.com/markdown/] 好东西会让人免费为其推广,希望我自己也能做出几个有用的小工具. 一.JSONP的使用 jsonp,是一种数据格式,用来解决跨域问题. 比如,在 admin.chugang.net 需要一个二维码,而在 www.chugang.net 中已经存在
-
浅析json与jsonp区别及通过ajax获得json数据后格式的转换
有关json与jsonp的区别(json才是目的,jsonp只是手段)介绍如下所示: 一言以蔽之,json返回的是一串数据:而jsonp返回的是脚本代码(包含一个函数调用): JSON其实就是JavaScript中的一个对象,跟var obj={}在质上完全一样,只是在量上可以无限扩展.简单地讲,json其实就是JavaScript中的对象(Object)和数组(Array,其实也是对象)这倆好基友在那儿你嵌我我嵌你地套上n多层,以此模拟出许多复杂的数据结构. json易于人阅读和编写,也易于机
-
简单介绍jsonp 使用小结
Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据. 为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略. 同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略. 首先:jsonp是json用来跨域的一个东西. 原理是通过script标签的跨域特性来绕过同源策略. 经过测试实验: 发送端: $.a
-
关于JSON与JSONP简单总结
一.什么是json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python
-
json与jsonp知识小结(推荐)
json 1. json 的值可以是下面这些类型: ① 数字(整数或浮点数),比如123,1.23 ② 字符串(在双引号中) ③ 逻辑值(true 或 false) ④ 数组(在方括号中) ⑤ 对象(在花括号中) ⑥ null 2. json解析方法 ① eval('(' + jsondata + ')' ); 使用时永远是不安全的,代码注入 ② JSON.parse(jsondata); JSONLint json:字符串校验工具 3. jQuery 实现ajax jQuery.ajax([s
-
java中数组的相关知识小结(推荐)
1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[]ags; ags=new int{1,2,3,4}; 或者 int[]ags=new int{1,2,3,4}; 3.java不支持不同类型的重名数组 4.java中数组的循环赋值 package dierge; public class Shuzu { public static void main
-
Json.net 常用使用小结(推荐)
Json.net 常用使用小结(推荐) using System; using System.Linq; using System.Collections.Generic; namespace microstore { public interface IPerson { string FirstName { get; set; } string LastName { get; set; } DateTime BirthDate { get; set; } } public class Empl
-
php json转换相关知识(小结)
最近在查找一个bug的时候,发现前端传过来的json空对象 {} ,被php转换成了空数组 [] 存到了数据库里面, 读取并返回给前端的时候,没有做特殊处理,返回了 [] 给前端,导致一些问题. 所以决定梳理一下php的json转换相关的内容. 索引数组转json 看如下示例代码: $a = ['aa', 'bb', 'cc']; $ret = json_encode($a); var_dump($ret); 打印结果是: string(16) "["aa","bb
-
Python3内置模块之json编解码方法小结【推荐】
Python3中我们利用内置模块 json 解码和编码 JSON对象 ,JSON(JavaScript Object Notation)是指定 RFC 7159(废弃了RFC 4627)和 ECMA-404是一种轻量级数据交换格式,受 JavaScript对象文字语法的启发 (虽然它不是JavaScript 1的严格子集).下面为Python对象-->JSON对象的对照关系表. dumps编码 我们利用 dumps 将Python对象编码为 JSON对象 ,当然 dumps 只完成了序列化为st
-
PHP的openssl加密扩展使用小结(推荐)
引言 互联网的发展史上,安全性一直是开发者们相当重视的一个主题,为了实现数据传输安全,我们需要保证:数据来源(非伪造请求).数据完整性(没有被人修改过).数据私密性(密文,无法直接读取)等.虽然现在已经有SSL/TLS协议实现的HTTPS协议,但是因在客户端上依赖浏览器的正确实现,而且效率又很低,所以一般的敏感数据(如交易支付信息等)还是需要我们使用加密方法来手动加密. 虽然对于一般的WEB开发人员来说,大可不必深入了解一些安全相关的底层技术,但学习加密基础知识,使用现有加密相关工具却十分必要.
-
C和指针小结(推荐)
C和指针 相关基础知识:内存的分配(谭浩强版) 1.整型变量的地址与浮点型/字符型变量的地址区别?(整型变量/浮点型变量的区别是什么) 2.int *p,指向整型数据的指针变量. 3.通过指针变量访问整型变量. 4.*p :指针变量p指向的存储单元(变量) 5.p = &a-->> *p = *&a 6.用指针作函数参数 7.调用函数中,由于虚实结合是采用单向的"值传递"方式,只能从实参向形参传数据,形参值的改变无法回传给实参. 8.引用一个数组元素可以用(
-
Java三大特性-封装知识小结
最近有个朋友说想要说最近在学java,他对面向对象的编程语言的时候还是有些不明白,为了帮他能更快地"转型",我就写了这篇文章.因为从上层建筑层面而言.所有的面向对象编程语言的思路都是差不多的,而这三大特性,则是思路中的支柱点,接下来我就重点讲解了一下java三大特性. 面向对象的编程语言,拥有三大特性,分别是:"封装","继承","多态". 封装 在面向对象编程中,封装封装(encapsulation)从字面上来理解就是包装的
-
Python解析json文件相关知识学习
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成. 今天用pytho
-
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
JSON和JSONP JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于在浏览器和服务器之间交换信息. JSONP(JSON With Padding),就是打包在函数调用中的的JSON(或者包裹的JSON). JSON是一种数据格式,JSONP是一种数据调用方式. 复制代码 代码如下: //JSON { "name": "sb" } 复制代码 代码如下: //JSONP callback({ &q
随机推荐
- VBS教程:VBScript 基础-VBScript 变量
- 研究下DOS下联网的方法
- 原生JS实现隐藏显示图片 JS实现点击切换图片效果
- 批处理设置windows服务器的代码ThecSafe1.9.4第1/3页
- 轻松理解iOS 11中webview的视口
- c语言线程终止练习示例
- JS正则表达式学习之贪婪和非贪婪模式实例总结
- php自定义加密与解密程序实例
- Winform中Treeview实现按需加载的方法
- mysql 性能的检查和调优方法
- jquery ajax请求实例深入解析
- jQuery使用Layer弹出层插件闪退问题
- python简单实现计算过期时间的方法
- 2014年50个程序员最适用的免费JQuery插件
- 详解nginx使用ssl模块配置HTTPS支持
- Android AsyncTask实现异步处理任务的方法详解
- php缩放图片(根据宽高的等比例缩放)实例介绍
- fleaphp rolesNameField bug解决方法
- Java设计模式笔记之抽象工厂代码示例
- jQuery实现切换隐藏与显示同时切换图标功能