1.繼上一篇隨筆,鏈接點我,解決手機端cookie的問題。 2.上次用cookie+redis實現了session,並且手機瀏覽器可能回傳cookies有問題,所以最後用js取出cookie跟在請求的url後面。 3.但是今天發現了新的問題,js取cookie存的sessionId為空,情況如下: ...
1.繼上一篇隨筆,鏈接點我,解決手機端cookie的問題。
2.上次用cookie+redis實現了session,並且手機瀏覽器可能回傳cookies有問題,所以最後用js取出cookie跟在請求的url後面。
3.但是今天發現了新的問題,js取cookie存的sessionId為空,情況如下:
(1)QQ瀏覽器能獲取某些cookie,另一些cookie獲取為空,猜測是後臺Response SetCookie的時候,手機端瀏覽器沒能良好的接受。
(2)UC瀏覽器測試正常。
(3)Safari情況和QQ瀏覽器相同。
(4)PC端正常。
4.這樣的情況下,我最終確定問題是, 後臺對手機瀏覽器setCookie時出現問題。
5.解決辦法是,將需要存在cookie中的值放到json返回結果中一併返回。
6.在js中使用setCookie的方法來向瀏覽器設置cookie.
7.SetCookie方法如下。
function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); }