2011-07-04 53 views

回答

0

這不是ajax請求。

這也不是什麼棘手的事情。

Twitter僅回答HTTP響應代碼爲302(臨時移動)的HTTP POST請求 - 請參閱http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection。瀏覽器的答案就像是HTTP響應代碼303(請參閱其他)。

事實上,發生的事情僅僅是重定向到同一頁面


編輯:用於測試目的添加的代碼。

我剛纔用下面的代碼進行測試,並證實了上面所說的:

<form method="post"><input type="submit" value="click here" /></form> 
<?php 
if ($_SERVER['REQUEST_METHOD'] == 'POST') 
    header('Location: /test.php', true, 302); 
?> 

我使用PHP作爲服務器端編程語言。我將這個腳本保存爲web服務器公共根文件夾中的test.php。它的行爲與Twitter頁面完全相同:單擊表單提交按鈕,使用header函數觸發302重定向。瀏覽器歷史記錄不會更改。

+0

我認爲這是更多的東西。當我將重定向複製到同一頁面時,瀏覽器歷史記錄會發展。 – Brian

+0

@Brian:當我第一次發佈我的答案時,我沒有進行任何測試。現在,我已經測試過了,它工作。您確定您在重定向中將HTTP響應代碼302從服務器端發送到瀏覽器嗎? –

+0

您應該針對「表單處理後重定向」或類似的內容(http://www.google.com/search?q=redirection+after+form+processing)進行Google調查。該技術背後的意圖是避免再次提交相同的數據......請參閱http://www.thefutureoftheweb.com/blog/get-redirect-after-post或http://raventools.com/博客/重定向後的表單處理/ ...還有很多其他的。 –

2

window.location.replace將加載一個頁面,但不會將其保存在歷史記錄中。

window.location.replace('http://twitter.com/account/resend_password'); 
相關問題