addheader|object
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" %> Some text on the Web page.
在前面的例子中,頁沒有緩衝。但是,因為在伺服器將輸出
Some text on the Web page
發送到用戶端之前調用了 AddHeader 方法,所以指令碼能正常工作。如果調換一下順序,則對 AddHeader 方法的調用將產生一個執行階段錯誤。
------file2.asp----------<% Response.Buffer = TRUE %> 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") %>
在前面的樣本中,頁被緩衝了,其結果是,直到此頁上所有的 ASP 指令碼執行後或 Flush 方法被調用後,伺服器才會將輸出發送到用戶端。帶緩衝的輸出中對 AddHeader 的調用可在指令碼的任何地方出現,只要在 Flush 調用之前即可。在前面的樣本中,若對 AddHeader 的調用在對 Flush 的調用之後出現,指令碼將產生一個執行階段錯誤。
您可以通過這一方法用不同的值發送同一標題的多份拷貝,比如用 WWW-Authenticate 標題。
樣本
下面這個樣本使用 AddHeader 方法要求用戶端使用 BASIC 驗證。
<% Response.Addheader "WWW-Authenticate", "BASIC" %>
注意 前面的指令碼僅通知用戶端瀏覽器使用哪個驗證。若您在 Web 應用程式中使用該指令碼,則一定要啟用 Web 服務器的 BASIC 驗證。
應用於
Response 對象