2009-06-12 71 views
53

是否可以使用POST方法重定向?
還是應該重定向總是使用GET?redirect_to在rails中使用POST

這種情況的使用是在一個順序過程的用於電子商務網站的最終步驟,將數據發送至支付處理器,而不引入用於用戶的額外步驟。

回答

73

重定向是不可能的POST請求 - 這是part of the HTTP/1.1 protocol

你既可以引入包含表單數據被張貼到付費處理器又邁進了一步,或者你可以從你的應用程序發送後(這是我與PROTX工作時的情形)。

14

我用所有的產品和運費等顯示摘要頁,具有典型的「解決」問題「確認並支付所購商品,點擊繼續下面的按鈕」類型的消息。繼續按鈕會導致網站將產品數據和所有內容發佈到付款處理器。

簡短的回答 - 有用戶的又一步驟。然而,關鍵是要儘可能讓自己看起來像結賬一樣自然而然。這樣,它不會被認爲是「僅僅一步」。

但是,如果你做遇到一個更好的辦法,我會聽到它是什麼:)

+1

相反,您可以只顯示「Processing order ...」佔位符並自動提交帶有隱藏字段的表單。如果網頁的工作速度足夠快,用戶甚至不會在大部分時間看到此頁面... – mdrozdziel 2011-09-26 07:12:58

+1

這與下面的Alsciende的方法非常相似。完美無瑕,但你會依賴於JavaScript,因此你會想要某種形式的回退(當然不太可能這些日子,但可能)JS沒有的情況下。 – 2011-10-02 14:14:56

11

的JavaScript簡單的線條非常有興趣,你可以有你的POST表來發表自己(form.submit())。然後,您可以隱藏表單,並在表單提交給付款處理器時向用戶顯示一個簡單的「請稍候...」消息。