2

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 Method Not Allowed

app.yaml

application: wordninjabackend
version: 1
api_version: 1
runtime: python

handlers:
- url: .*
script: main.py

わかりました、それはアプリ エンジンの python です。これは単なるサンプル プログラムなので、サーバーへの投稿に何か問題があるに違いありません

4

2 に答える 2

2

protorpc では、HelloService のリモート メソッド名が投稿先の URL にあると想定します。

このコードを使用してサービス マッピングを登録している場合は、

# Map the RPC service and path (/hello)
    app = service.service_mappings([('/hello.*', HelloService)])

次に、投稿の URL を次のように変更する必要があります。

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

于 2012-09-08T12:21:37.367 に答える
1

また、サービスを呼び出すための例が欠けていたため、ProtoRPC hello アプリの例を理解するのが難しいこともわかりました。hello word アプリをテストする最も簡単な方法は、次のような UNIX タイプの端末から curl コマンドを使用することです。

curl -H \
'content-type:application/json' -d \
'{ "my_name": "Bob" }' http://localhost:8083/hello.hello

URL には必ず独自の localhost:portnumber を使用してください

そして、あなたは応答を受け取ります:

{"hello": "Hello there, Bob!"}

powershell で curl を使用している場合は、\ を削除して、curl コマンド全体を 1 行にまとめてください。

そこで動作していることを確認したら、$.ajax 呼び出しを試すことができます。

于 2012-10-27T19:50:48.767 に答える