luajit - nginx+lua による POST パラメータの取得に関する問題
黄舟
黄舟 2017-05-16 17:16:40
0
3
1081

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

リーリー

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

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

リーリー

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

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(3)
为情所困

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

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

いいねを押す +0
给我你的怀抱

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!