2013-01-24 57 views
1

我有一個用於登錄的ColdFusion頁面。點擊登錄按鈕正在由JQuery函數處理。認證本身是假的,發生在函數本身內部。一旦成功,我將其他ColdFusion頁面的內容加載到第一頁。我能以任何方式在JQuery的ColdFusion會話中設置一個變量嗎?我可以訪問JQuery內部的ColdFusion會話嗎?

+0

有可能是你的目標的另一條路徑。你在想什麼變量,你打算在ColdFusion中做什麼? –

回答

6

在最嚴格的問題意義上,不,jQuery/javaScript不能直接訪問ColdFusion變量,Kevin B是正確的。不過,您可以使用AJAX(即JavaScript,而不是jQuery,儘管jQuery有一些方法可以使其變得簡單)將數據發送到ColdFusion,而無需在瀏覽器中執行完整的往返。這樣做會導致ColdFusion在URLFORM範圍內創建變量,具體取決於您選擇的方法。不幸的是,FORMURL變量僅在請求期間存在,因此您將使用ColdFusion通過剛剛發送的URLFORM變量來設置需要設置的任何SESSION變量。

jQuery有幾個方法來做到這一點。

的這是一個非常簡單的例子可能看起來像這樣 jQuery的:在setVariable.cfm

<script> 
    var myName = "Travis"; 
    $.get('setVariable.cfm?someVar='+myName, // Send a value to the server in the URL. 
     function(data){ // tell the user what the server said (optional). 
     alert(data); //data is whatever was returned by the server. 
     } 
    ); 
</script> 

CF代碼可能看起來像

<cftry> 
    <cfset session.userName = url.someVar> 
    Session user was set. 
    <cfcatch> 
     <cfoutput> 
      Oh, Crap! Something bad happened! (#cfcatch.message#) 
     </cfoutput> 
    </cfcatch> 
</cftry> 
4

不,您在客戶端訪問的所有內容都是會話/客戶端令牌Cookie。然而,您可以設置自定義cookie的值,然後使用coldfusion訪問該cookie。

+6

除非您使用Ajax。 – Travis

+0

我想,但是你不會真的用jQuery來設置它。 –

+0

$ .ajax()或$ .post()發送數據和cf來實際設置它,但它可以使用jquery發送數據 – Travis

相關問題