在JSON/JSONP中定义回调函数



级别:初学者

你好,

我对Json World非常陌生,我感到困惑。
我正在研究API,该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. 我可以制定下面的请求吗?

www.myserver.com/id?jsonpcallback = {" proto版本":1.2," sversion":3," requestType":string," requestData":datamodel}

如果有人可以将我指向一个好的教程,那就太好了。我计划使用Python语言。谢谢您的宝贵时间。

将在哪里定义此mycallback参数?可能的起点是什么?我想我需要创建一个为我做到这一点的单独应用程序。

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

然后,您将该名称用作url

中的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。围绕相同的原始策略(这是浏览器沙盒功能),这是一个黑客攻击。使用常规JSON。

最新更新