我设置了ProtoRPC hello应用程序,但它不起作用,我正在用它发布到它
$.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,它只是示例程序,因此我发给服务器的帖子一定有问题
最佳答案
使用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。
https://developers.google.com/appengine/docs/python/tools/protorpc/overview#The_Hello_World_of_ProtoRPC