在JSON / JSONP中定义回调函数

时间:2014-01-21 09:48:28

标签: json callback jsonp

等级:初学者

大家好,

我对JSON世界很陌生,我有一种困惑 我正在研究一个API,它声明我可以通过使用JSON的回调函数从服务器获取一些信息。

API文档给出了一个响应,如下例所示:

它说我可以通过向服务器发送请求来获取一些信息:www.myserver.com/id?jsonpCallback=mycallback

此外,它还说请求结构如下:

{
  "proto Version" : <String>,
  "sVersion" : <String>,
  "requestType" : <String>,
  "requestData" : <DataModel>
}

,响应结构如下:

{
  "protoVersion" : <String>,
  "sVersion" : <String>,
  "responseType" : <String>,
  "responseErrorType" : <String>,
  "responseErrorDetail" : <String>,
  "responseData" : <DataModel>
}   

我的问题如下:

  1. mycallback参数将在何处 界定?什么可能是起点?我想我需要创造 一个单独的应用程序,为我这样做,但不确定。
  2. 我是否也需要制定我的请求和回复?如果是,那么在哪里?
  3. 我可以制作如下的请求吗?
  4.   

    www.myserver.com/id?jsonpCallback = {“proto Version”:1.2,“sVersion”:3,“requestType”:String,“requestData”:DataModel}

    如果有人可以指点我一个好的教程,那就太好了。我计划使用python语言。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

  

这个mycallback参数将在何处定义?什么可能是起点?我想我需要创建一个单独的应用程序来为我做这个但不确定。

您的客户端JavaScript需要创建一个具有唯一名称的全局函数,该名称接受单个参数(这将是HTTP API返回的数据)。

然后,您将该名称用作网址

中的mycallback
  

我是否还需要制定我的请求和回复?如果是,那么在哪里?

您可以通过创建script元素,将其src设置为API URL(包括您的回调参数)并将其附加到DOM来制作请求

  

我可以制作如下的请求吗?

没有。 jsonpCallback必须是函数名称。

  

此外,它还表示请求结构将为......

该结构对于JSONP请求毫无意义。

通常使用标准查询字符串参数。

http://www.myserver.com/id?jsonpCallback=myhandler13487w8789&protoVersion=1.2&sVersion=3&requestType=String&requestData=DataModel
  

我计划使用python语言。

然后不要使用JSONP。解决Same Origin Policy是一个浏览器沙箱功能。使用常规JSON。