2012-08-08 67 views
1

我正嘗試將用戶重定向到具有asp頁面可以使用的一些數據的不同asp頁面。這是我使用的代碼:使用位置重定向.href

var done = confirm("Would you like to save?"); 
if (done == true) 
{ 
    var concode = "<%response.write(concode) %>"; 
    location.href = "Main.asp?concode="+concode; 
} 

但是我注意到,信息顯示後「?Main.asp concode =」,這是類似於HTML表單的URL「get」方法。

有沒有什麼辦法可以讓這段代碼類似於html表單「post」metod?因爲我使用的是<%request.form("concode")%>,並且URL中的信息很敏感,例如服務器名稱和密碼。

或者我必須使用AJAX和JavaScript的組合來實現我所需要的嗎?

+0

如果您的「敏感」意味着您不希望用戶看到它*,那麼將它移動到POST方法並不會將其從用戶隱藏,如果用戶擁有像Fiddler這樣的工具或決定查看頁面的來源。您應該將其存儲在會話中,而不要將其傳送到用戶的頁面。 – mellamokb 2012-08-08 14:04:45

+0

這是真的。但是,我已經確認用戶不使用這些類型的跟蹤工具。 – blazinazian 2012-08-08 14:06:01

+0

這是公開的網站嗎?您應該*從不*假設用戶無法獲取可用於他們的信息,只要您的任何用戶可能有惡意的意圖。如果這是您的組織的完全內部網站,那麼這可能是一個安全的假設,但應用最佳編程實踐仍然是一個好主意。 – mellamokb 2012-08-08 14:07:01

回答

1

從javascript發佈數據並將頁面移動到結果(而不是在不更改頁面的情況下使用AJAX來完成)最簡單的方法是將該信息放入表單中,然後submit()吧。表單可以隱藏,或者完全由輸入組成,因此它不需要影響用戶界面。

也就是說,唯一增加的安全性是肩負閱讀。重要的是,但它仍然需要HTTPS來保護它免受竊聽(並且它不會保護用戶本身的任何內容,最終用戶不應該被允許看到的任何內容都不能通過JavaScript處理)。

+0

非常感謝您的幫助!不知道在JavaScript中有一個提交方法。你懂得越多... – blazinazian 2012-08-08 18:39:34

1

你是對的。你說的是「嘿,瀏覽器,用這個查詢字符串去這個URL」,這確實是一個GET請求。如果你想使用POST請求,你確實需要一些JavaScript和AJAX。例如jQuery中的AJAX POST功能:http://api.jquery.com/jQuery.post/

+0

所以一旦我用我想要的數據使用send()函數,我會使用xmlhttp.onreadystatechange屬性來更改窗口位置嗎?如果是這樣,那麼我使用send()函數的信息仍然存在嗎? – blazinazian 2012-08-08 14:36:56