2011-07-06 90 views
1

當你點擊這個<a href='http://www.mysite.com/page.php?v=foo&z=bar'>如何在加載頁面時更改地址欄中的URL?

,然後在頁面加載完成後像,在地址欄中的URL應該這個樣子http://www.mysite.com/page.php沒有查詢。

這就像當你嘗試登錄一個網絡郵件,例如,你輸入用戶名和密碼,他們使用查詢字符串嗎?但是當頁面加載完成後,URL沒有任何查詢。

+1

你爲什麼要刪除它?如果它是敏感數據,則不應將其用於查詢字符串中。 – Trevor

+0

URL顯示用戶正在訪問的位置。如果你想改變它,你需要重定向到一個新的位置。 – webbiedave

+0

這就像當你嘗試登錄一個webmail時,他們使用查詢字符串,但是當頁面加載完成後,URL沒有任何查詢 –

回答

0

我的理解是,當我們更改地址欄的URL時,Web瀏覽器觸發請求,而不刷新頁面,即我猜。

如果你不希望顯示在URL用戶的元素用POST方法

<form action="page.url" method="post"> 
<input type="hidden" name="param_name" value="value"/> 
</form> 
0

您可以更改URL無需重新加載頁面的唯一方法HTML表單是通過改變什麼位於after一個#角色。

任何改變之前它會導致頁面重新加載。

+0

**與**加載,你怎麼做到這一點? –

+0

對不起,我沒有得到它?問題是什麼? –

0

這裏,你可以使用...我不認爲這是從UX的角度來看真正偉大的戰略,但它實現了自己的目標:第一次加載

  1. 過程的查詢字符串參數,並把它們存儲在會議陣列($_SESSION
  2. 重定向到同一頁面瓦特/查詢字符串參數
  3. 做任何事是你需要與現在存儲在$_SESSION
01的參數值做

就像我說過的,我不認爲這是一個壯觀的方法,它會產生潛在的副作用,你將不得不在代碼中處理,這似乎不值得痛苦。另外,即使使用這種方法,包含查詢字符串參數的URL也會顯示在客戶端的瀏覽歷史記錄中,因此您不會真正隱藏任何內容(假設這是您的目標)。

另一種考慮的方法是使用POST方法而不是GET方法來處理請求。您只需將參數作爲請求的有效負載而不是查詢字符串傳遞。

+0

我不認爲存儲會話和重定向會是一個好主意,因爲我嘗試了它並在頁面加載完成後重新加載頁面。 –

0

這樣做的最好方法是使用htaccess。 此文件通常位於您的網站的根目錄以及索引文件中。

你的htaccess文件必須以:

Options +FollowSymlinks 
RewriteEngine on 

然後所有你需要做的是(你使用的示例):

RewriteRule ^page.php page.php?v=$1&z=$2 

有關htaccess的詳細信息:http://corz.org/serv/tricks/htaccess.php

0

請參閱HTML5's pushState並將其與使用AJAX加載的內容一起使用。 請注意,這可能會很複雜,並且除了最新的瀏覽器以外都不支持。

例如使用它的一個網站:http://www.shopify.com/tour/website-design

相關問題