2017-01-12 5 views
2

私はCodeIgniter 1.7を使用している古いWebアプリケーションを拡張しようとしています。 POSTリクエストでしかアクセスできない特定のルートを希望します。関数の先頭には次のものがあります。PHP REQUEST_METHOD POSTがGETに変わります

if ($_SERVER['REQUEST_METHOD'] != 'POST') 
    die ('Wrong request method: ' . $_SERVER['REQUEST_METHOD']); 

ローカルでは、PHPのビルトインWebサーバーを使用してPHP 7.0.14で正常に動作します。しかし、プロダクションでは、PHP 5.4.25を実行しているCPanel管理サーバー上では、それはありません。

郵便番号でPOSTリクエストを私のルートに送信すると、次のようになります。

間違ったリクエスト方法:はPUT、をDELETE PATCH

GET、...の要求すべてを正しく認識します。 POSTリクエストは、魔法のようになります。GETリクエストです。

POST私がこのリクエストで送信したデータも消えているようで、$_POSTまたは$_GETのいずれにも見つかりません。

これはCodeIgniterフレームワークとは関係がないようですが、フレームワーク外のファイルを呼び出すと同じ結果になります。

どのような考えですか?

+0

おそらく、http://stackoverflow.com/questions/20268863/laravel4-post-unexplained-redirect-to-get(おそらく重複しているかどうかはわかりません)と同じ回答です。 – LSerni

+0

mod_rewriteのルールはありますか? –

+0

また、リダイレクトがあった場合はアクセスログを確認してください。ページリロードによるフォームの再提出を避けるために、POSTリクエストを処理した後に302で応答するのはかなり一般的です。 –

答えて

1

私は、http://www.domainにリダイレクトするように設定されたhttp://domainへのリクエストを作成していました。このリクエストは、POSTリクエストをGETリクエストに変換します。そして、Postmanはそのようなリダイレクトが起こったことをユーザーに通知しません。

この問題が発生している場合は、リダイレクトが行われているかどうかを確認してください。

なぜ、これはPUT、PATCH、DELETE、...要求ではなく、POST要求でのみ発生するのでしょうか。

LSerni、Alex Blex、Vaviloffのおかげで正しい方向に向いています。

関連する問題