我有以下代码:
<%@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
如何获取原始网址中#cot的位?我查看了Request.Server变量的所有内容。
答案 0 :(得分:3)
简短回答:你不能
它的设计。
来自RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax - Section 4.1 Fragment Identifier
当使用URI引用对标识的资源执行检索操作时,通过交叉线(“#”)字符与URI分隔的可选片段标识符包含要由用户代理解释的其他参考信息检索操作成功完成后。因此,它不是URI的一部分,但通常与URI结合使用。
基本上#
永远不会发送到服务器,因此您无法从Classic ASP中检索它。客户端(Internet浏览器)会在发送之前从URI中删除#
片段。
说过可以使用JavaScript从客户端检索它,然后通过form / querystring将值传递给Classic ASP可以检索和使用它的服务器。