2016-05-06 99 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可以检索并使用它的服务器。

相关问题