我有一项服务,允许将调查嵌入页面中。此调查使跨域ajax调用我的服务器,从任何地方托管的页面。
该服务在rails 3上运行。我正在尝试存储会话中回答的最后一个问题的索引。 ActiveRecord商店处于活动状态。该服务托管在heroku上。我已经迁移了会话表并对其进行了调整。
但是会话中没有保存值。这是一个我无法解决的问题,还是可以以这种方式使会话工作?
以下是问题的说明:
Rails.logger.info { "session current stage is #{session[:current_stage]}" }
session[:current_stage] = params[:current_stage].to_i
session[:current_stage] ||= 0
Rails.logger.info { "session current stage is #{session[:current_stage]}" }
输出如下:
session current stage is 0
session current stage is 1
下次运行(会话值为1后):
session current stage is 0
session current stage is 2
或者只是因为我的会话无法正常工作,而不考虑跨域问题?
只需快速添加:每次点击服务器时都会创建一个唯一的会话,而下次则不会检索。它将每个电话视为一个前所未有的新事件。我认为这是我所做的交叉行业的副产品。任何解决方案?
答案 0 :(得分:0)
对延迟回复表示歉意 - Cookie被删除并且忘记了这个问题。
我正在通过jQuery ajax调用使用跨域调用,并且连接工作得很好。我在页面加载时调用初始化例程,调用远程服务器并获取一个JSON对象,用于汇编在浏览器中运行的调查问卷,将结果发送回服务器。它在JSON中嵌入了一系列代码,无需会话。但是当用户更改页面时,我需要服务器知道当下一页获得init调用时,它是已经看到的连接。
我正在使用ActiveRecord会话。我可以在会话表中看到这些累积,并且看起来每个新连接都会创建一个新会话。这些连接几乎都是通过ajax连接。
我正在通过嵌入在页面上的脚本编写cookie,该脚本也连接到远程服务,这表明了一种自己的持久性机制 - 从服务器获取密钥,然后检查它。我可能会在服务器端进行IP检查,以便将现在分开的会话缝合在一起,我想......