2016-09-20 45 views
0

我正在嘗試爲我的Web用戶創建一個在線聊天程序,以便與現場銷售人員進行交流。我使用ajax jquery命令來刷新存儲在數據庫中的聊天記錄。我遇到的問題是它失去了在ajax調用上標識用戶的會話變量,但它似乎只對某些用戶這樣做。我缺少一些關於coldfusion的設置嗎?通過ColdFusion在ajax中傳遞會話變量9

我應該在我的CF管理員中設置任何特定設置嗎?

<cfapplication name="Chat Room" 
      clientmanagement="Yes" 
      sessionmanagement="Yes" 
      sessiontimeout="#CreateTimeSpan(0,1,0,0)#" > 

<cfset session.UserID = #new_session.UserID# > 


window.onload = function() 
    { 
     setInterval("ReloadChatWindow();", 2500); 
    }; 

function ReloadChatWindow() 
    { 
     $.ajax({url: "messages.cfm", success: function(result){ 
      $("#ChatLog").html(result); 
     }}); 

     $("#ChatLog").scrollTop($("#ChatLog")[0].scrollHeight); 
    } 

new_session.UserID#只是從數據庫插入(用戶提供他們的名字和我爲他們分配的用戶ID。

只有一個域使用會話,有沒有跨域調用。

+1

你在哪裏得到'new_session.UserID',爲什麼還要設置新的會話範圍? – TRose

+2

嘗試從CF管理員'SERVER SETTINGS'>'Memory Variables'在**上啓用J2EE會話** – RRK

+1

失去會話的客戶端是否曾經正常工作或者他們是否總是刪除會話?他們是全部使用相同的域還是你有多個域打這個應用程序? –

回答

0

會話變量過期,所以你需要檢查它們是否可用,然後才能使用它們。在你的messages.cfm文件中,你必須檢查用戶是否仍然有一個有效會話,以及它是否沒有將它們重定向到登錄頁面。如果他們確實有一個有效的會議,你可以更新消息。