jsonp返回的数据是什么格式

 我来答
孟羽然
2017-09-20 · TA获得超过2976个赞
知道小有建树答主
回答量:1308
采纳率:70%
帮助的人:575万
展开全部

jsonp主要是为了解决跨域访问问题而产生的,其返回的数据格式一般就是一个js脚本,这个脚本有以下特点:

  1. 返回的js脚本通常是服务端动态生成的。

  2. 整个脚本通常有且仅有一条语句,且是一个函数调用。

  3. 脚本中调用到的函数,是页面上存在的一个函数,其函数名通过get参数传递给服务端,服务端再将其回写到js脚本中。

  4. 函数的参数,是服务端处理后的结果数据,以json格式直接写在脚本中。这也是jsonp得名的由来。

因为,ajax是不允许跨域访问的,所以要从其他站点获取数据时,就需要经过一些特殊的手段才行,jsonp就是一种成本比较低的手段(此外还有服务端代理等方式)。jsonp主要是利用了<script><img><iframe>标签可以跨域访问的特点。具体的步骤如下:

  1. 首先,在本地页面上事先准备好一个用于接受返回数据的函数,比如:function showList(listdata){...};

  2. 其次,在需要的时点静态或动态地创建一个标签,比如:<script type="text/javascript" src="http://another.website/jsonp_call?arg1=xx&arg2=xx&callback=showList" ></script>,其中:

    1. another.website:是另外一个站点的域名或ip地址。

    2. jsonp_call:是该站点提供的一个动态内容访问的服务,可用php、java等任何技术实现。

    3. arg1、arg2:是该服务所需要的参数

    4. callback:是用于返回结果的回调函数名。

  3. 然后,another.website站点接收到这个jsonp_call的请求后,进行相应的处理,并将放回的结果封装为一个js脚本,其内容类似这样的形式:showList([{id:1,name:'a'}, {id:2,name:'b'}, ..., {id:n,name:'NNN'}]);

  4. 最后,结果返回到客户端后,就会自动解析并执行这个showList函数。

这样就完成了从“向其他站点发起请求”到“接收其他站点的应答数据”的整个过程,并且突破了ajax跨域访问的限制。

yueliang5836
2017-09-19 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:209
采纳率:0%
帮助的人:50.1万
展开全部
jsonp不是什么格式,应该是非正式的传输协议,保证json数据的安全用的,个人理解;http://kb.cnblogs.com/page/139725/ 看看这篇文章
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张郑旭66
2017-09-19 · 超过12用户采纳过TA的回答
知道答主
回答量:71
采纳率:100%
帮助的人:23万
展开全部
JSON格式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cs903016
2017-09-19 · TA获得超过1179个赞
知道小有建树答主
回答量:2599
采纳率:80%
帮助的人:1723万
展开全部
jsonp返回的数据什么格式都有啊,看你后台怎么处理的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式