我设置了ProtoRPC你好应用程序,它不起作用我用这个发布到它
$.ajax({url: "http://wordninjabackend.appspot.com/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);
}
});
我正在调整:405方法不允许
的app.yaml
application: wordninjabackend
version: 1
api_version: 1
runtime: python
handlers:
- url: .*
script: main.py
好吧,它是应用程序引擎上的python,它只是示例程序,因此我的帖子到服务器时出错了
答案 0 :(得分:2)
使用protorpc,它希望HelloService中的远程方法名称位于您发布的URL上。
如果您使用此代码注册服务映射,
# Map the RPC service and path (/hello)
app = service.service_mappings([('/hello.*', HelloService)])
然后你需要将你的帖子更改为:
http://wordninjabackend.appspot.com/hello.hello
额外的“.hello”指的是HelloService类中的方法“hello”。如果将该方法重命名为fred,则还需要将其更改为.fred
有关其工作原理的更多信息,请在页面下方进一步阅读,以便为留言板应用程序开发PostService。
答案 1 :(得分:1)
我还发现ProtoRPC hello app示例很难理解,因为它缺少调用服务的示例。我发现测试hello word app的最简单方法是使用unix类型终端的curl命令,例如:
curl -H \
'content-type:application/json' -d \
'{ "my_name": "Bob" }' http://localhost:8083/hello.hello
请务必使用您自己的localhost:portnumber作为URL
您将收到回复:
{"hello": "Hello there, Bob!"}
如果你在powershell中使用curl,只需删除\并将整个curl命令放在一行。
一旦你看到它在那里工作,你可以尝试$ .ajax调用。