我试图让这两个库一起工作。但我不确定他们是否可以开箱即用地连接。$.ajax
在使用 JSON-RPC 插件之前,我使用标准功能成功完成了它。您能否给我一些简短的示例,说明客户端函数的外观以及 GAE 端的入口点。
或者也许应该创建一个特殊的 ProtoRPC jQuery 库来轻松完成这项工作?
我试图让这两个库一起工作。但我不确定他们是否可以开箱即用地连接。$.ajax
在使用 JSON-RPC 插件之前,我使用标准功能成功完成了它。您能否给我一些简短的示例,说明客户端函数的外观以及 GAE 端的入口点。
或者也许应该创建一个特殊的 ProtoRPC jQuery 库来轻松完成这项工作?
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 库吗?我不确定它会变得更简单。
我们肯定需要为用户开发一个通用的 protorpc 库。之后,最好编写一个与之配合使用的 jquery 插件。
我实际上想过让 ProtoRPC 支持 JSON-RPC 作为单独的协议,但是 JSON-RPC 可能有一些事情使它与 ProtoRPC 不兼容。两件事情:
JSON 请求允许在其参数中包含任意类型的列表。ProtoRPC 采用一个定义良好的类型。
JSON 字段和列表可能包含任意类型。ProtoRPC 字段和列表只能包含一种类型。
我希望我有一个更好的答案给你。
我正在研究相同的想法,并在此处发布了类似的问题。
我发现如果您的请求具有 ContentType application/json,ProtoRPC 确实会给出 JSON 响应,如果您包含 ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },在您的网格选项中,但这仍然存在 ProtoRPC 仅接受一个明确定义的参数的问题,而 jqGrid 默认情况下会尝试上传 5 个左右 url 格式的参数,即使您将其设置为POST 而不是 GET。
我目前正在尝试使用 grid.postext.js 插件来解决这个问题,到目前为止没有成功。