2010-06-15 56 views
5

代碼CFHEADER值可以被其他代碼讀取嗎?

<cfheader name="Test" value="1"> 
<cfheader name="Test" value="2"> 

結果在標題「測試:2」被髮送到瀏覽器(如使用的是HttpFox看到的)。

有沒有辦法讓第二行代碼確定是否已經使用CFHEADER編寫了同名的頭文件?

謝謝!

回答

12

您正在使用什麼版本的ColdFusion?當我的ColdFusion 9運行你的代碼,我得到的頭值(使用FireBug如圖所示):

test: 1, 2 

至於你能否告訴我們,如果有,現有的值有可能是什麼,爲響應報頭,我還沒有找到辦法。不過,我會繼續尋找。

更新:找到了。

getPageContext().getResponse().containsHeader("test") 

例如:

<cfif getPageContext().getResponse().containsHeader("test") eq "NO"> 
    <cfheader name="test" value="2" /> 
</cfif> 
+0

冷卻。也適用於Railo 3.1,包括'test:1,2'輸出。 – Sergii 2010-06-15 13:40:24

+0

啊,我們使用的是ColdFusion Standard 8,0,1,195765版本,Firefox中的LiveHTTPHeaders只顯示「Test:2」。你的代碼也可以在CF8上完美工作......將使用它 - 謝謝! – 2010-06-17 12:24:08

3

無法幫助檢查標題的確切任務,但我試圖實現標題外觀來處理標題發送和跟蹤已處理項目的歷史記錄。

它可以作爲UDF包裝一樣簡單,像這樣的:

<!--- this should be somewhere on request start ---> 
<cfset request.headers = {} /> 

<!--- wrapper for cfheader ---> 
<cffunction name="SendHeader" returntype="void" output="false"> 
    <cfargument name="name" type="string" required="true" hint="Header name"> 
    <cfargument name="value" type="string" required="true" hint="Header value"> 
    <cfif NOT StructKeyExists(request.headers, arguments.name)> 
     <cfset request.headers[arguments.name] = arguments.value /> 
     <cfheader name="#arguments.name#" value="#arguments.value#" /> 
    </cfif> 
</cffunction> 
相關問題