![](/img/trans.png)
[英]How do i make my navigation bar centered without affecting the javascript for mobile version
[英]How do I achieve navigation without affecting browser history?
如果你在這里 go: http://twitter.com/account/resend_password
然后在不填寫表格的情況下單擊“發送說明”,它似乎正在執行一個完整的非 ajax 請求。
但是,如果我查看瀏覽器歷史記錄,前一頁 (resend_password) 不在歷史記錄中。 就好像它發出了 ajax 請求。
twitter 在做什么? 這真的只是一個 ajax 請求,還是在做一些棘手的事情?
window.location.replace
將加載一個頁面,但不會將其保存在歷史記錄中。
window.location.replace('http://twitter.com/account/resend_password');
這不是 ajax 請求。
這也不是什么棘手的事情。
Twitter is only answering the HTTP POST request with an HTTP response code number 302 (Moved Temporarily) - see 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 作為服務器端語言。 我將此腳本作為test.php
保存在網絡服務器公共根文件夾中。 它的行為與 Twitter 頁面完全相同:單擊表單提交按鈕,使用header
function 觸發302 重定向。 瀏覽器歷史不會改變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.