HTTP 類型偽裝

當處理 HTML 表單時,你只可以使用 GET 或 POST 這兩個 HTTP 動詞。在大多數情況下,這種情況是沒有問題的。然而為了支持 REST-ful 格式的路由, 你需要支持其他更為正確的路由動詞。例如 DELETE 或 PUT。由於瀏覽器不支持這種方式,CodeIgniter 提供了一種方法來偽裝請求的類型。這種方法允許你發起一個 POST 請求,但是告訴程式這個請求應該被作為另一個請求類型來處理。

為了偽裝請求類型,一個名為 _method 的隱藏輸入欄位需要被添加到表單中。這個欄位的值應當是你希望發送的請求類型:

<form action="" method="post">
    <input type="hidden" name="_method" value="PUT" />
</form>

這個表單就會被轉化成一個 ​​PUT 請求,並且只要路由和 IncomingRequest 類別能識別的話,這就是一個真正的 PUT 請求。

你所使用的表單必須得是一個 POST 請求,GET 請求無法被偽裝。

備註

請確認你的 Web 伺服器的設定,因為有些伺服器預設沒有支持所有的 HTTP 動詞,所以必須添加一些額外的套件來開啟這項功能。