2011-07-21 44 views
2

IN SHORT:使表單submit()的行爲類似於location.replace()

當用戶加載頁面時,需要提交這個網頁。有一個很好的理由,長話短說。

是否可以製作一個表格post submit()的行爲類似於location.replace()?沒有歷史痕跡。

謝謝。


LONG STORY:在我的CMS中,每個產品都有一個頁面。

  1. 小$ 10 買入
  2. 中等$ 20 買入
  3. 大$ 30 買入
:產品上的部分網頁,其中用戶被邀請 選擇一個產品正常上市

點擊購買會將用戶發送給付款頁面,異地。

產品詳細信息來自CMS頁面,其中我定義了價格,產品ID等的特定字段。產品詳細信息以表單形式呈現。

我基本上不想顯示永久性的獨立產品頁面。但是,這是一個CMS,產品將在部分頁面上列出,而用戶最終可以通過單擊鏈接而不是使用表單完整呈現的頁面來選擇產品。

如果他們最終在產品頁面上,我希望他們被重定向到購買頁面。當然,我不想讓頁面保留在歷史中,出於同樣的原因location.replace()被髮明出來:避免永久重定向的後退按鈕。

+0

不這樣認爲。使用location.replace會導致瀏覽器發出GET。只有一個url參數,你不能使用'.replace(url,'POST')'(這可能會很好)。 –

+1

爲什麼不使用Ajax發佈表單? –

+0

我猜你想要顯示POST響應。你爲什麼不希望用戶訪問他們的瀏覽器歷史記錄?嚴重的是,你的理由將被誤導或者你的方法已經過時。 –

回答

2

只要做一個AJAX POST,然後是location.replace。 AJAX POST不會創建瀏覽器歷史記錄條目。

+0

我想將用戶重定向到站點外的表單結果頁面。 –

+0

如果通過「重定向」,你的意思是你的服務器的HTTP 30X響應具有正確的「位置」頭,你可以在ajax響應中讀取它,並使用該URL做location.replace。如果通過「重定向」,意味着您希望用戶「結束於」給定的URL,那麼該URL可以是POST請求的表單的響應主體。 –

相關問題