2016-07-28 7 views
-1

私のローカルホストにコードを書いています。

のindex.php:私はGETやPOSTリクエストを送信する場合、それは問題ではありません

$task = null; 

    $method = $_SERVER['REQUEST_METHOD']; 

    var_dump($method); 

    //initialize data 
    HttpProtocol::init(); 

    if (empty($method)) 
     exitApp("unknown method"); 

    if ($method == HttpProtocol::get()) 
     $task = new WebhookVerifyTask(); 
    else if ($method == HttpProtocol::post()) 
     $task = new ProcessFacebookEventTask(); 
    if (is_null($task)) 
     exitApp("unknown method"); 

    $task->start(); 
    http_response_code(200); 

、$メソッドは常にGETになります。 PUTまたはDELETEを試行すると、完全に変更されます。

POSTの場合でも$メソッドが常にGETになる原因は何ですか?

UPDATE 明らかに私はlocalhost/pathにリクエストを送信しています - 上記の現象が発生します。私がlocalhost/path /に送るのであれば、投稿は完璧に動作します。

+0

current_filename.phpの呼び出し方法を教えてください。ご質問に – C2486

+0

index.phpを含めてください。更新された –

+1

あなたのアップデートはあなたの質問にも答えます。それが/ pathだがそのようなファイルがない場合、Webサーバーはあなたを/ path /に自動的にリダイレクトします。 – Janno

答えて

0

明らかに私がlocalhost/pathにリクエストを送信しているとき - 上記の現象が発生します。私は/パス/をlocalhostにそれを送っていた場合 - ポストが完全

を働くあなたのアップデートでは、あなたの質問に答えます。それが/ pathだがそのようなファイルがない場合、Webサーバーはあなたを/ path /に自動的にリダイレクトします。それは、このリダイレクトを行う際Janno

- - 彼はすべてのリクエストデータとメソッドで完全にそれをしないのですか?

できません。 Webサーバーは、別のURLへの別の要求を試す必要があることをクライアントに伝えることにします。 Webサーバーは、302 FoundステータスコードとLocation: http://localhost/path/ヘッダーで応答します。これにより、クライアントはその新しい場所への別のHTTP要求をとし、その新しい要求は常にGET要求になります。POSTリクエストをリダイレクトできません。理論的には、307 Temporary Redirectとすることができますが、実際には広くサポートされていません。

リダイレクトを行わないように、標準URLに直接リクエストする必要があります。

関連する問題