2016-05-06 136 views
2

我有以下代碼:我怎樣才能獲得完整的URL包括#字符後面的字符

<%@Language="VBSCRIPT"%> 
<html> 
<head> 
<title>in/Test Page 2</title> 
</head> 
<body> 
<% 
response.write "Request.QueryString = """ & Request.QueryString & """<br />" 

for each item in request.QueryString 
    response.write (item + " = " + Request.QueryString(item) + "<br>") 
next 
%> 
</body> 
</html> 

當我把它用這個網址:

TestPage2.asp?id=1&turl=http://www.google.com?id=1&url=generic#index 

將會產生這個輸出

Request.QueryString = "id=1&turl=http://www.google.com?id=1&url=generic" 
id = 1 
turl = http://www.google.com?id=1url=generic 

如何獲取原始網址中#字符後的位?我已經查看了所有通過Request.Servervariable的。

+1

Lankymart是對的,你不能這樣做。我結束了逃避並稍後再次轉換它。 – RichJohnstone

回答

3

簡短的回答:你不能


這是由設計。

RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax - Section 4.1 Fragment Identifier
當URI引用被用於通過一個交叉線來執行所識別的資源,可選的片段標識符,從URI分離的檢索動作(「#」)字符,由額外的參考信息在檢索動作成功完成後由用戶代理解釋。因此,它不是URI的一部分,但通常與URI結合使用。

基本上#永遠不會發送到服務器,所以你不能從傳統的ASP檢索。客戶端(Internet瀏覽器)在發送之前從URI中刪除#片段。

說了可以使用JavaScript從客戶端檢索它,然後通過表單/查詢字符串將值傳遞到經典ASP可以檢索並使用它的服務器。

相關問題