我正在尝试让这两个库协同工作。但我不确定他们是否可以开箱即用。在使用JSON-RPC插件之前,我使用标准$.ajax
功能成功完成了它。能不能给我一些关于客户端功能应该如何看的简短示例,以及GAE方面的切入点。
或者也许应该创建一个特殊的ProtoRPC jQuery库来轻松实现这项工作?
答案 0 :(得分:5)
ProtoRPC不使用JSON-RPC消息格式。它使用更简单的格式,其中每个API方法都提供自己的端点,而不是一个端点将方法名称作为请求字典的一部分。
以下是他们为$.ajax
提供的示例:
$.ajax({url: '/hello.hello',
type: 'POST',
contentType: 'application/json',
data: '{ my_name: Bob }',
dataType: 'json',
success: function(response) {
// The response is { hello: "Hello there, Bob!" }
alert(response.hello);
}
});
你真的需要一个特殊的jQuery库吗?我不确定它会变得简单得多。
答案 1 :(得分:3)
我们当然需要为用户开发通用的protorpc库。在那之后,最好编写一个与它一起使用的jquery插件。
我实际上想过为ProtoRPC提供一种方法来支持JSON-RPC作为一个单独的协议,但是JSON-RPC可能会有一些使它与ProtoRPC不兼容的东西。两件事:
JSON请求允许在其参数中包含任意类型的列表。 ProtoRPC采用一种定义良好的类型。
JSON字段和列表可能包含任意类型。 ProtoRPC字段和列表只能包含一种类型。
我希望我有更好的答案。
答案 2 :(得分:0)
我正在研究同样的想法,并发布了类似的问题here。
我发现如果你的请求有ContentType application / json,ProtoRPC会给出一个JSON响应,如果你包含ajaxGridOptions,jqGrid会生成这个:{contentType:'application / json; charset = utf-8'},在您的网格选项中,但仍然存在ProtoRPC只接受一个明确定义的参数的问题,而jqGrid默认尝试上传5个左右的url格式参数,即使您将其设置为POST而不是GET。
我目前正在尝试使用grid.postext.js插件来解决这个问题,到目前为止还没有成功。