検索

ホームページ  >  に質問  >  本文

luajit - nginx+lua による POST パラメータの取得に関する問題

マスターの皆様、URL には GET リクエストと POST リクエストがあり、サービスパラメータの値を取得するために、URL 内のパラメータを決定する必要があります。 nginx+luaを使ってやりました。コードは次のとおりです:

リーリー

現在の問題は、GET を使用してリクエストするとすべて正常ですが、POST を使用してリクエストすると Nginx が 500 エラーを報告することです。

デバッグには次のコードを使用します:

リーリー

GETおよびPOSTリクエストメソッドで出力されるサービスパラメータの値は正しいです。

どこに問題があるのか​​わかりませんか?神様に教えてもらいましょう。感謝。 。 。

黄舟黄舟2814日前1153

全員に返信(3)返信します

  • 为情所困

    为情所困2017-05-16 17:18:40

    set_by_lua を使用する場合、POST 送信の場合、ngx.req.read_body() を呼び出すときに、set_by_lua モジュール内の read_body の呼び出しが禁止されます (set_by_lua の実行に失敗しました: set_by_lua:6: API がコンテキストで無効になっています) set_by_lua の
    スタック トレースバック: [C]: 関数 'read_body' set_by_lua:6: 関数 <set_by_lua:1>);
    ただし、次のような rewrite_by_lua を使用できます:
    location / {

    リーリー

    また、変数名として $service を使用しないことをお勧めします。キーワードがシステム変数と競合する可能性があります。

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 17:18:40

    元投稿者からアドバイスをお願いします。 ngx.req.get_post_args() が値を取得しないのに、ngx.req.get_body_data() が値を取得する理由はわかりません。何が原因でしょうか?

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 17:18:40

    ngx.req.get_post_args() は、rewrite_by_lua、access_by_lua、content_by_lua* ステージでのみ使用でき、使用する前に ngx.req.read_body() を呼び出すか、
    lua_need_request_body オプションをオンにしてこのモジュールを強制する必要がありますリクエストの本文を読み取る (この方法は推奨されません)

    返事
    0
  • キャンセル返事