Foxtable(狐表)用户栏目专家坐堂 → 移动方案中取不到Cookie的问题


  共有3760人关注过本帖树形打印复制链接

主题:移动方案中取不到Cookie的问题

帅哥哟,离线,有人找我吗?
Hopenight
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:10801 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2017/5/4 11:27:00 [只看该作者]

我个人已基本确定是狐表移动方案在Cookie处理方面的问题了,先说一下结论:
在设置Cookie(wb.AppendCookie\e.AppendCookie\e.Cookies.Add)且返回给浏览器之后,Cookie没有马上生效。

随后我会发一个针对以上代码的测试步骤出来。
[此贴子已经被作者于2017/5/4 11:30:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Hopenight
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:10801 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2017/5/4 11:46:00 [只看该作者]

以下是引用有点色在2017/5/4 10:22:00的发言:

 20170318版,测试了一下,确实不行,调用的方式不对,应该有冲突。

 

 你改成模拟【session/application】吧,用vars变量记录,本来cookie就不应该用来设置登录的。

 

赋值

 

        Vars(e.Request.RemoteEndPoint.ToString & "safeuserno") = safeUserNo
        Vars(e.Request.RemoteEndPoint.ToString & "sessionid") = sessionId

 

取值

 

        Dim safeUserNo As String = Vars(e.Request.RemoteEndPoint.ToString & "safeuserno")
        Dim sessionId As String = Vars(e.Request.RemoteEndPoint.ToString & "sessionid")

[此贴子已经被作者于2017/5/4 10:32:00编辑过]

不太明白。如果实在不行,我会考虑在客户端上想变通方案,例如使用localStorage或sessionStorage


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/4 13:59:00 [只看该作者]

不同子目录的cookie默认不能互相访问


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 14:12:00 [只看该作者]

以下是引用Hopenight在2017/5/4 11:46:00的发言:

不太明白。如果实在不行,我会考虑在客户端上想变通方案,例如使用localStorage或sessionStorage

 

不一定要把数据存放在客户端。你在服务器端用变量存放客户的信息也是可以的啊。

 

每个客户的ip不同,那就可以用ip地址+名字作为变量的名字,用来存放数据。这样就不需要用到cookie。

 

再者,你看看13楼,不要在不同的子目录。


 回到顶部
帅哥哟,离线,有人找我吗?
Hopenight
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:10801 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2017/5/4 14:15:00 [只看该作者]

以下是引用有点蓝在2017/5/4 13:59:00的发言:
不同子目录的cookie默认不能互相访问

应该是这个原因造成的,谢谢蓝版


 回到顶部
帅哥哟,离线,有人找我吗?
Hopenight
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:10801 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2017/5/4 14:17:00 [只看该作者]

以下是引用有点色在2017/5/4 14:12:00的发言:

 

不一定要把数据存放在客户端。你在服务器端用变量存放客户的信息也是可以的啊。

 

每个客户的ip不同,那就可以用ip地址+名字作为变量的名字,用来存放数据。这样就不需要用到cookie。

 

再者,你看看13楼,不要在不同的子目录。

色版说的确实也是一种好思路。 关于Cookie目录的问题,强烈建议移动方案中设置和读取Cookie时,能提供Optinal参数,用于灵活选择Cookie所在目录


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 15:46:00 [只看该作者]

以下是引用Hopenight在2017/5/4 14:17:00的发言:

色版说的确实也是一种好思路。关于Cookie目录的问题,强烈建议移动方案中设置和读取Cookie时,能提供Optinal参数,用于灵活选择Cookie所在目录

 

可以自己设置cookie的。生成html的时候,写一段js代码就好了

 

在weui.js文件,加一个函数

 

function mySetCookie(name, value) { 
       var exp = new Date(); 
       exp.setTime(exp.getTime() + 3 * 24 * 60 * 60 * 1000); //3天过期 
       document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + exp.toGMTString() + ";path=/";  
       return true;  
}; 

 

然后你项目代码插入cookie就好了

 

wb.InsertHTML("<script>mySetCookie('test', '123456')</script>")

[此贴子已经被作者于2017/5/4 16:28:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Hopenight
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:860 积分:10801 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2017/5/4 16:10:00 [只看该作者]

以下是引用有点色在2017/5/4 15:46:00的发言:

 

可以自己设置cookie的。生成html的时候,写一段js代码就好了

 

在weui.js文件,加一个函数

 

function mySetCookie(name, value) { 
       var exp = new Date(); 
       exp.setTime(exp.getTime() + 3 * 24 * 60 * 60 * 1000); //3天过期 
       document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + exp.toGMTString() + ";path=/";  
       return true;  
}; 

 

然后你项目代码插入cookie就好了

 

wb.InsertHTML("<script>mySetCookie('test', '123456')</script>")

感谢色版,我试试看...


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 16:53:00 [只看该作者]

 我测试了一下,可以的,注意函数的大小写,之前写错了

 

 函数你可以改造一下,cookie的有效期,你也可以用参数传递进去

 

function mySetCookie(name, value) { 
       var exp = new Date(); 
       exp.setTime(exp.getTime() + 3 * 24 * 60 * 60 * 1000); //3天过期 
       document.cookie = name + "=" + encodeURIComponent(value) + ";expires=" + exp.toGMTString() + ";path=/"; 
       return true; 
}; 

[此贴子已经被作者于2017/5/4 16:53:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/4 17:03:00 [只看该作者]

 


以下内容是专门发给Hopenight浏览

[此贴子已经被作者于2017/5/4 17:38:11编辑过]

 回到顶部
总数 23 上一页 1 2 3 下一页