您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關微信小程序中如何管理http請求的session的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
微信小程序 http請求的session管理
作為一個開發JavaWeb應用的程序猿,都喜歡將用戶登錄后的用戶信息(比如說用戶id,用戶名稱)放入session中保存,之后在業務邏輯的開發中需要用到用戶信息的時候就可以輕松又方便的從session中取到值。最近在開發微信小程序的時候碰到一個問題就是每次微信小程序請求的時候都會改變sessionid,這就會導致在后面的請求中取不到登錄時保存在session中的用戶信息,其實在前后端分離開發的時候也會碰到這個問題,后端程序員負責服務器端開發,提供接口程序,前端程序員負責客戶端開發,調用后端程序員提供的接口程序獲取數據,此時,前端程序員請求的每個接口程序也是都會改變sessionid的,因些也無法獲取到登錄時保存在session里的用戶信息。
常見的session保持方式是,當瀏覽器向服務端發起http請求時,服務端檢查在http頭部cookie參數里是否包含sessionid,如果有sessionid就根據sessionid去查看存儲在服務器端的session,session里保存的當前會話的一些信息。如果sessionid沒有服務端就會分配一個,寫到cookie字段里,瀏覽器下次發起其它請求的時候帶上。
因此,為了解決上面我說的問題,我們可以這樣做,客戶端在第一次請求服務器時,也就是登錄的時候獲得一個sessionid,在本地存儲起來,然后在之后每次請求服務器的時候就在header里面帶上這個sessionid,寫到cookie字段里。但是有個問題就是,你本地存儲了這個sessionid后那么以后每次都會是這個sessionid,所以建議在程序每次啟動的時候先清空本地存儲的sessionid,然后發送首次請求獲取新的sessionid。
如下為ajax請求時在header中帶上sessionid的客戶端代碼:
$.ajax({ type: 'post', headers: { 'Cookie':'JSESSIONID=1k2naixut68f81q5rpr0c3n4vc' }, data: {}, dataType: 'json', timeout: 30000, url: '/test', success: function (res) { alert("success"); }, error: function (e) { alert("false"); } })
感謝各位的閱讀!關于“微信小程序中如何管理http請求的session”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。