目前使用前后端分離的模式開發(fā),后端提供跨域接口、前端jsonp調(diào)用,綁定數(shù)據(jù),但是在該站點(diǎn)下有個(gè)人中心模塊存在的情況下,服務(wù)端的session會(huì)話會(huì)被跨域請(qǐng)求覆蓋改掉

大家都知道tomcat使用cookie中jsessionid來(lái)區(qū)分客戶端session會(huì)話

跨域請(qǐng)求接口恰恰有時(shí)候響應(yīng)回來(lái)回改變?cè)撜军c(diǎn)下的jsessionid值,導(dǎo)致服務(wù)器每次判斷都是一個(gè)新的會(huì)話

 

以網(wǎng)站個(gè)人中心模塊來(lái)說(shuō),每一個(gè)跨域jsonp請(qǐng)求,都會(huì)Response 一個(gè)cookie值,SET-COOKIE:JSESSIONID=XXXX,如下圖:

 


 

再看服務(wù)端,前端刷新一次也沒,后端服務(wù)會(huì)話id都不是同一個(gè)sessionid,所有后端所有的請(qǐng)求都是未登錄,這就導(dǎo)致前端發(fā)送的請(qǐng)求,后端無(wú)法拿到當(dāng)前個(gè)人用戶信息


 

目前服務(wù)端部署都采用tomcat,所以修改辦法是在conf/context.xml文件中,設(shè)置sessionId的cookieName別名,不和默認(rèn)的jsessionid一直,如下:

網(wǎng)友評(píng)論