2016-07-28 52 views
-1

我正在寫一些代碼在我的本地主機。

的index.php:

$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或POST請求不要緊,在$方法將總是GET。 當嘗試PUT或刪除 - 它完全改變..

什麼可能導致$方法總是GET即使POST?

UPDATE 顯然當我發送請求到本地主機/路徑 - 上述行爲發生。如果我將它發送到本地主機/路徑/ - 該帖子完美地工作。

+0

你如何調用你的current_filename.php?請在您的問題 – C2486

+0

index.php中加入。已更新 –

+1

您的更新還解答了您的問題。如果它是/路徑,但沒有這樣的文件,Web服務器會自動將您重定向到/ path /。 – Janno

回答

0

顯然當我發送請求到本地主機/路徑 - 上述行爲發生。如果我將其發送到localhost /路/ - 後完美的作品

你的更新也回答你的問題。如果它是/路徑,但沒有這樣的文件,Web服務器會自動將您重定向到/ path /。 - Janno

當它這種重定向 - 他並不完全與所有的請求數據和方法做到這一點?

它不能。 Web服務器決定告訴客戶端它應該嘗試另一個請求到另一個URL。網絡服務器迴應一個302 Found狀態碼和一個Location: http://localhost/path/標題。這會導致客戶端向該新位置發出另一個HTTP請求,,並且該新請求始終爲GET請求。POST請求無法重定向。 (好吧,理論上他們可以使用307 Temporary Redirect,但在實際中並沒有得到廣泛支持。)

您需要直接向規範URL請求,以避免重定向。

相關問題