2011年5月19日星期四

在 ASP 中创建返回页面链接及 server.URLEncode 的使用


首先创建一个 back_url 变量方便调用:

<%
back_url = "http://" & request.ServerVariables("HTTP_HOST") & request.ServerVariables("URL") & "?" & request.ServerVariables("QUERY_STRING")
%>

然后根据不同的环境传值使用:

form 的 get 方法:

<form method="get">
<input type="hidden" name="back_url" value="<%=back_url %>" />
</form>

form 的 post 方法:

<form method="post">
<input type="hidden" name="back_url" value="<%=back_url %>" />
</form>

链接:
<a href="test.asp?back_url=<%=server.urlencode(back_url)%>">test</a>

由于 form 中会对包含的数据自动进行编码,所以可以看到无需使用 server.urlencode 方法,而链接中则需要。

在目标页面需要取值使用时,不需要解码,直接使用 request.querystring("back_url") 或 request.form("back_url") 就行。如果目标页面需要再次传递返回页面地址,则根据上面示例再次传递。

另外,据说 asp 的 server.urlencode 会根据页面编码不同而采用不同的编码方式,所以应该在每个页面最前面加上

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>


没有评论:

发表评论