我设置了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

08-25 16:56