【问题标题】:JSON RPC in jqGridjqGrid 中的 JSON RPC
【发布时间】:2011-02-18 17:40:46
【问题描述】:

我正在开发一个使用 JSON 与服务器进行通信的 Web 应用程序。我用

var jsonStr = '{ name: "Rob", time: "2pm" }';
jQuery("#name").jqGrid({
    type : "POST",
    url:'ControllerServlet?jsonData='+jsonStr,
    datatype: "json",

将数据作为 JSON 字符串传递给服务器,在服务器中对其进行解析、处理并发送回 JSON,该 JSON 将显示在 jqGrid 中。

这对我有用,但我想知道 JSON-RPC 的作用是什么;我读到它用于远程调用。使用 JSON-RPC 而不是使用上述方式调用 servlet 有什么好处吗?如何使用 JSON-RPC 执行相同的操作?

【问题讨论】:

  • 您使用的url 似乎很奇怪,尤其是对于HTTP POST。如果您使用 POST,您通常应该发送正文中的所有参数,如其他 jqGrid 参数pagerowssidxsord。您可以使用postData 参数来执行此操作。例如postData: {name: "Rob", time: "2pm"}。要将 JSON 格式的 all 参数发送到服务器,您还可以使用 serializeRowData: function (data) {return JSON.stringify(data);} 和可选的 ajaxGridOptions: { contentType: "application/json; charset=utf-8" } jqGrid 参数。之后您应该更改服务器代码。

标签: json jqgrid rpc


【解决方案1】:

作为website states,JSON-RPC 是使用JSON 的remote procedure call 协议规范。因此,在类似于XML-RPC 或Java 的RMI 的服务器上调用远程方法/过程是一种规范。 JSON-RPC 和 XML-RPC 都可以使用 HTTP 作为底层传输协议,但也可以与其他协议一起使用。

另一方面,jqGrid 和一般的 Ajax 通常使用 HTTP(理想情况下是 RESTful)请求来获取或传输直接表示,例如JSON 或 XML 编码数据。到目前为止,这是 JavaScript 开发中的首选方式(comparison of REST vs XML-RPC 是一种很好的阅读方式,也适用于 JSON-RPC)。

【讨论】:

    猜你喜欢
    • 2013-09-12
    • 1970-01-01
    • 2012-10-02
    • 2011-02-07
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 2021-02-24
    相关资源
    最近更新 更多