2011-02-11 91 views
1

我在一個頁面上將我重定向到我自己的web服務器(www.myserver.com),但請求不是一個GET,而是一個POST。瀏覽器可以通過POST重定向到一個url?

起初www.myserver.com無法處理請求,因爲我只有一個處理「GET /」的路由處理程序。當我意識到它可能是POST重定向(在他們的指南中閱讀它)時,我爲「POST /」創建了一個路由處理程序,並且該頁面被提供。

糾正我,如果我錯了,所以瀏覽器可以重定向到一個url與POST?

回答

2

答案是YES,但瀏覽器應該提示用戶。 302不允許使用GET和HEAD,但允許307使用POST。從HTTP RFC:

307臨時重定向

所請求的資源所在 暫時下一個不同的URI。 由於有時重定向可能會被修改爲 ,客戶端SHOULD 將繼續使用Request-URI來處理將來的請求。該響應僅在 可緩存(如果由 緩存控制或Expires標頭字段指示)。

臨時URI應該由 響應中的位置字段給出。 除非請求方法是HEAD, 響應應該 包含具有 超鏈接到新的URI(多個)短超文本註釋的實體,由於 許多預HTTP/1.1用戶代理不 明白307個狀態。因此, 該筆記應該包含 信息,用戶需要在 的URI上重複原始請求的 URI。

如果307個狀態碼被接收在 響應於其他比GET 或HEAD的請求,用戶代理必須不 自動重定向請求 除非其可通過 用戶確認,因爲這可能會改變 條件下,請求發出 。

您使用的瀏覽器是?

+0

我正在使用Chrome – ajsie 2011-02-11 08:35:14

0

您可以使用指向頁面的<form>標記創建頁面,然後在頁面加載時使用Javascript提交表單。

+0

但我不是在談論窗體,而是POST重定向。 – ajsie 2011-02-11 03:46:57

相關問題