Response.Redirect方法

Redirect方法导致浏览器把客户端重定向到一个不同的URL。

Redirect(
   URL
)

参数

URL
浏览器要重定向到的统一资源定位符(URL)。这可以是以“http://”开头的完整的URL,或者是一个指向同一个IIS服务器中某位置的虚拟路径,或者是一个和原始URL处于相同位置的另一个文件的名称。

URL可以包含一个查询字符串。

旧的Web浏览器在重定向过程中,可能会把一个POST请求转换成一个GET请求。

Caution:
始终要校验并编码传递给Response.Redirect的URL,以防止跨站脚本袭击。欲进一步了解如何从字符串中删除有效的脚本,请参阅Removing Harmful Characters from User Input从用户输入中删除有害的字符。

返回值

该方法没有返回值

适用于

Response对象

备注

任何响应主体内容,比如说原始URL中表明的显示的HTML文本或网页中的Response.Write文本,都会被忽略。另外,在处理Redirect方法时,当前网页中的代码执行会被终止,因此网页中后续的代码会被忽略掉。

然而,该方法不会依据原始URL所表示的网页,把别的HTTP头集发送到客户端。生成了一个自动响应主体,包含了重定向URL,作为一个链接。Redirect方法会发送下面的明确头,其中URL是传递给方法的值,如下面的代码所示:

HTTP 1.0 302 Object Moved 
Location: http://www.microsoft.com

示例代码

下面的示例向你展示了如何使用VBScript编程语言,在校验URL之后,把用户重定向到微软的网站。

VBScript
<%@ LANGUAGE="VBScript" %> 
<% 
  Dim MyUrl 
  MyUrl = "http://www.microsoft.com"

  Response.CodePage = 1252 
  If ValidateInput(MyUrl) Then   
    Response.Redirect (myURL) 
  Else 
    Response.Write("URL was invalid.") 
  End If 

  Function ValidateInput(sInput) 
    Dim reValid 
    Set reValid = New RegExp 

    reValid.Pattern = "^[\w\.:\?&=/]*$" 
    reValid.MultiLine = False 
    reValid.Global = True 

    ValidateInput = reValid.Test(sInput) 
  End Function 
%>

下面的示例向你展示了如何使用VBScript编程语言把用户重定向到同一个IIS服务器中的一个虚拟目录。

VBScript
<% Response.Redirect "/samples/asp/newpage.asp" %>

下面的示例向你展示厅了如何使用VBScript编程语言来把用户重定各到一个本地文件,与此同时,传递一个查询字符串。

VBScript
<% Response.Redirect Server.HTMLEncode("newpage.asp?var1=5&var2=7") %>

表单和查询字符串数据不会传输到新的URL。下面的示例向你演示了如何使用VBScript编程语言从一个原始请求把查询字符串传递到新的URL。

VBScript
<% 
dim qs 
qs = Server.URLEncode(Request.Querystring) 
Response.Redirect "newpage.asp?" + Server.HTMLEncode(qs) 
%>

必备条件

Client: Requires Windows XP Professional, Windows 2000 Professional, or Windows NT Workstation 4.0.

Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.

Product: IIS

如果你喜欢这篇文章,敬请给站长打赏↑

除特别注明外,本站所有文章均为本站站长原译,转载请注明出处。