我正在使用 python JSON-RPC 实现编写一个 Web 应用程序 -服务器端的http://json-rpc.org/wiki/python-json-rpc和客户端的 jQuery axaj API。这是我在 python 中的第一个 JSON 服务实现,所以我从提到的站点复制了示例(CGI 在 Apache 2.2 上运行):
#!/usr/bin/env python
from jsonrpc import handleCGI, ServiceMethod
@ServiceMethod
def echo(msg):
return msg
if __name__ == "__main__":
handleCGI()
使用提供的 python ServiceProxy 类作为客户端(在控制台中),一切正常:
from jsonrpc import ServiceProxy
s = ServiceProxy("http://localhost:8080/mypage/bin/controller.py")
print s.echo("hello")
但是当我尝试在 firebug 控制台中使用 jQuery 进行 ajax 调用时(在我的页面的上下文中):
var jqxhr = $.getJSON("bin/controller.py", {"params": ["hello"], "method": "echo", "id": 1}, function(data) { alert('success!'); });
我经常收到此错误:
{"error":{"message":"","name":"ServiceRequestNotTranslatable"},"result":null,"id":""}
我究竟做错了什么?