2009-12-21 45 views
1

我有一个Rails应用程序将一些用户信息存储在一个cookie中,并且该信息没有按照我的意愿进行存储。一个客户端在单个页面中连续执行五个请求时,会有一个空的cookie,直到该页面完全加载完毕,然后将来会填充该cookie。它的行为就好像客户端在页面加载之前实际上没有提交cookie。这是使用多个浏览器的情况,所以它似乎不是任何特定浏览器的怪癖。有什么办法可以提交这些内容,或者我将不得不寻找其他解决方法?Cookie不会立即保存在Rails应用程序中

回答

0

您能否更详细地解释您在单个页面加载的上下文中生成五个rails请求的操作?你能保证这些请求将到达Web服务器的顺序吗?

我猜饼干不会是完成你想要做的事情的最佳方式。

+0

基本上,使用特定样式标记的每个图像都会向服务器生成一个请求,以返回有关图像的其他信息。作为该交易的一部分,服务器还返回存储在cookie中的访问者ID,以便我们有一种方式来记录来自特定访问者的用于统计目的的请求。 – jjb 2009-12-31 17:06:39

+0

所以我猜测用户在这个交易开始之前没有登录或者什么东西?您是否可以将一些唯一键添加到每个这些URL的查询字符串中,这些字符串将它们作为一个事务绑定在一起? – jmcnevin 2009-12-31 18:02:44

+0

不,用户没有登录,并且这些用户没有我们的帐户。我们考虑过创建一个唯一的页面ID,每次调用服务器时都会跟踪页面(与每个图像的单独调用相对应)。 – jjb 2009-12-31 20:33:47

0

只有在响应返回后,cookie才会在访问者的浏览器上设置,因此在请求期间您不会在Cookie中找到该值。

如果您在处理Rails控制器上的请求时将cookie [:some_key]设置为某个值,您能不能查找稍后设置的值?您究竟如何设置并查找cookie值?

+0

客户端页面正在对服务器进行五次调用,并且我在第一次调用的控制器中设置了cookie [:value]。但是,当第二个调用出现时,cookies [:value]为零,所以我重新创建了cookie。加载页面完成后,如果我刷新客户端页面,则Cookie将设置为期望值。 – jjb 2009-12-22 18:07:04

相关问题