回覆列表
-
1 # 網路圈
-
2 # 網際網路活化石
js不能直接獲取session的值,但是可以操作cookies。
session和瀏覽器之間透過一個叫sessionID的cookies關聯起來。透過操作這個cookies,可以間接操作session。
其實你的需求就是錯的,理解錯了session和cookies的區別和關係
-
3 # 汛1
首先要明白一點,session是儲存於伺服器端的。因此想要獲取session必須是伺服器端語言。如果樓主說的是指運行於網頁端的js當然不能獲取session。但是別忘了,還有nodejs,如果使用nodejs作為伺服器端執行的語言,此時伺服器端的js當然就可以獲取session的。
Session是一種會話保持機制,和Cookie一樣,只不過Session是儲存在伺服器端的。而JS在客戶端執行時預設是無法直接獲取Session的,但我們可以透過其它方式變通的讓JS能獲取到Session的值。
Session機制我們知道HTTP協議本身就是無狀態的協議,預設情況下即使是同一個客戶端發出的多次請求,也會被當成不同客戶發出的請求(因為伺服器端是無法識別哪些請求是來自同一個客戶端發出的)。這種特性對於WEB應用而言是存在很大問題的,因為很多業務是必須要會話機制的,所以才有了Cookie+Session機制。基於Cookie+Session機制,在一定時間內同一客戶端發出的多次請求伺服器都會標識為同一客戶的請求,因為每個請求都有一個head頭資訊。
透過JS獲取Session的方案雖然JS無法直接獲取Session的值,但我們可以在動態頁面中呼叫Session的值,然後用JS透過Ajax呼叫此動態頁面,這樣就變相的透過JS獲取到了Session的值。