JSON和JSONP理解

这是Google排名第一的答案,看完以后非常清晰,在这里标记一下,怕以后找不到

http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html

总的来说就是:

JSON是一种传递数据的数据结构

优点:JS原生支持(有这个对象的属性和方法),可读性强,容易编写和解析

他和对象有点像,但是在规则或者说格式上有区别

        .没有对象名,直接是{}或者[],里面是属性名和键值对,属性名用引号包围起来

JSONP    

一种实现跨域获取数据的方法

首先要理解什么是同一域,协议,域名,端口号3者都一样,则是同一域,否则就是不同域

ajax只能同一域获取数据,要实现跨域获取,需要服务器代理,cors,JSONP等技术,这里介绍JSONP

就是利用了src获取资源可以跨域这一方法,通过<script>标签,将服务器端的函数引进来,里面放了需要的数据,这是原理

至于JSONP,他是一种非正式协议,大家约定好     写一个回调函数,把函数名通过连接传递给服务器,服务器在参数那里写上需要的数据再返回。然后再在那个客户端的回调函数进行处理。

和AJAX相比,他们的原理不同,ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本。

其实ajax与jsonp的区别不在于是否跨域,ajax通过服务端代理一样可以实现跨域,jsonp本身也不排斥同域的数据的获取。

jQuery把JSONP作为ajax的一种形式进行了封装

猜你喜欢

转载自blog.csdn.net/holiday19950913/article/details/85059644