2016-05-06 5 views
2

私は、次のコードを持っている:私はこのURLでそれを呼び出す私は#の文字の後に文字を含む完全な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 

元のURLの#charの後にビットを取得するにはどうすればよいですか?私はRequest.Servervariableのすべてを見てきました。

+1

Lankymartはそうです、あなたはできません。私はそれをエスケープし、後で再び変換してしまった。 – RichJohnstone

答えて

3

短い答え:あなたがすることができません


それはデザインであります。 RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax - Section 4.1 Fragment Identifier
URI参照が識別されたリソース上で検索動作を実行するために使用される場合、クロスハッチ(「#」)文字でURIから分離された任意のフラグメント識別子は、、から構成から

検索アクションが正常に完了した後にユーザーエージェントによって解釈される追加の参照情報そのため、URIの一部ではありませんが、しばしばURIとともに使用されます。

#は、基本的にはサーバーに送信されないため、Classic ASPからは取得できません。クライアント(インターネットブラウザ)は、送信前にURIから#フラグメントを削除します。

JavaScriptを使用してクライアントサイドから取得することが可能であると言えば、Classic ASPが取得して使用できるサーバーにform/querystring経由で値を渡します。

関連する問題