ASP OBJECT之:ADDHEADER
类别: ASP教程
AddHeader
AddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除。
此方法仅供高级用户使用。若其他 Response 方法提供了您所需的功能,建议您使用该方法。
语法
Response.AddHeader name, value
参数
name
新的标题变量的名称。
value
存储在新的标题变量中的初始值。
注释
为避免命名不明确,name 中不能包含任何下划线字符 (_)。ServerVariables 集合将标题中的下划线字符解释为反斜杠。例如,下面的脚本使服务器查找一个名为 MY-HEADER 的标题名。
<% Request.ServerVariables("HTTP_MY_HEADER") %>
由于 HTTP 协议要求所有的标题都必须在内容之前发送,所以您必须在任何的输出(例如由 HTML 或 Write 方法生成的输出)发送到客户端之前在脚本中调用 AddHeader。但当 Buffer 属性被设置为 TRUE 时例外。若输出被缓冲,那么您就可以在脚本中的任何地方调用 AddHeader 方法,只要它在 Flush 之前执行即可。否则,对 AddHeader 的调用将产生一个运行错误。
下面的两个 .asp 文件对这一点进行了解释。
-------file1.asp---------
<% Response.AddHeader "WARNING", "Error Message Text" %>
<HTML>
Some text on the Web page.
</HTML>
在前面的例子中,页没有缓冲。但是,因为在服务器将输出
Some text on the Web page
发送到客户端之前调用了 AddHeader 方法,所以脚本能正常工作。如果调换一下顺序,则对 AddHeader 方法的调用将产生一个运行时错误。
------file2.asp----------
<% Response.Buffer = TRUE %>
<HTML>
Here\'s some text on your Web page.
<% Response.AddHeader "WARNING", "Error Message Text" %> Here\'s some more interesting and illuminating text.
<% Response.Flush %>
<%= Response.Write("some string") %>
</HTML>
在前面的示例中,页被缓冲了,其结果是,直到此页上所有的 ASP 脚本执行后或 Flush 方法被调用后,服务器才会将输出发送到客户端。带缓冲的输出中对 AddHeader 的调用可在脚本的任何地方出现,只要在 Flush 调用之前即可。在前面的示例中,若对 AddHeader 的调用在对 Flush 的调用之后出现,脚本将产生一个运行时错误。
您可以通过这一方法用不同的值发送同一标题的多份拷贝,比如用 WWW-Authenticate 标题。
示例
下面这个示例使用 AddHeader 方法要求客户端使用 BASIC 验证。
<% Response.Addheader "WWW-Authenticate", "BASIC" %>
注意 前面的脚本仅通知客户端浏览器使用哪个验证。若您在 Web 应用程序中使用该脚本,则一定要启用 Web 服务器的 BASIC 验证。
应用于
Response 对象
AddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除。
此方法仅供高级用户使用。若其他 Response 方法提供了您所需的功能,建议您使用该方法。
语法
Response.AddHeader name, value
参数
name
新的标题变量的名称。
value
存储在新的标题变量中的初始值。
注释
为避免命名不明确,name 中不能包含任何下划线字符 (_)。ServerVariables 集合将标题中的下划线字符解释为反斜杠。例如,下面的脚本使服务器查找一个名为 MY-HEADER 的标题名。
<% Request.ServerVariables("HTTP_MY_HEADER") %>
由于 HTTP 协议要求所有的标题都必须在内容之前发送,所以您必须在任何的输出(例如由 HTML 或 Write 方法生成的输出)发送到客户端之前在脚本中调用 AddHeader。但当 Buffer 属性被设置为 TRUE 时例外。若输出被缓冲,那么您就可以在脚本中的任何地方调用 AddHeader 方法,只要它在 Flush 之前执行即可。否则,对 AddHeader 的调用将产生一个运行错误。
下面的两个 .asp 文件对这一点进行了解释。
-------file1.asp---------
<% Response.AddHeader "WARNING", "Error Message Text" %>
<HTML>
Some text on the Web page.
</HTML>
在前面的例子中,页没有缓冲。但是,因为在服务器将输出
Some text on the Web page
发送到客户端之前调用了 AddHeader 方法,所以脚本能正常工作。如果调换一下顺序,则对 AddHeader 方法的调用将产生一个运行时错误。
------file2.asp----------
<% Response.Buffer = TRUE %>
<HTML>
Here\'s some text on your Web page.
<% Response.AddHeader "WARNING", "Error Message Text" %> Here\'s some more interesting and illuminating text.
<% Response.Flush %>
<%= Response.Write("some string") %>
</HTML>
在前面的示例中,页被缓冲了,其结果是,直到此页上所有的 ASP 脚本执行后或 Flush 方法被调用后,服务器才会将输出发送到客户端。带缓冲的输出中对 AddHeader 的调用可在脚本的任何地方出现,只要在 Flush 调用之前即可。在前面的示例中,若对 AddHeader 的调用在对 Flush 的调用之后出现,脚本将产生一个运行时错误。
您可以通过这一方法用不同的值发送同一标题的多份拷贝,比如用 WWW-Authenticate 标题。
示例
下面这个示例使用 AddHeader 方法要求客户端使用 BASIC 验证。
<% Response.Addheader "WWW-Authenticate", "BASIC" %>
注意 前面的脚本仅通知客户端浏览器使用哪个验证。若您在 Web 应用程序中使用该脚本,则一定要启用 Web 服务器的 BASIC 验证。
应用于
Response 对象
- 上一篇: ASP函数语法速查表
- 下一篇: ASP OBJECT之:APPENDTOLOG
-= 资 源 教 程 =-
文 章 搜 索