Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery rails中的跨域会话问题_Jquery_Ruby On Rails_Session_Jsonp - Fatal编程技术网

Jquery rails中的跨域会话问题

Jquery rails中的跨域会话问题,jquery,ruby-on-rails,session,jsonp,Jquery,Ruby On Rails,Session,Jsonp,我有一项服务,允许在页面中嵌入调查。这项调查对我的服务器进行跨域ajax调用,调用的页面位于任何地方 该服务在Rails3上运行。我正在尝试存储会话中最后一个问题的索引。ActiveRecord存储处于活动状态。该服务托管在heroku上。我已经迁移了会话表并对其进行了搜索 但会话中未保存值。这是一个我无法回避的问题,还是可以让会话以这种方式工作 以下是问题的说明: Rails.logger.info { "session current stage is #{session[:current

我有一项服务,允许在页面中嵌入调查。这项调查对我的服务器进行跨域ajax调用,调用的页面位于任何地方

该服务在Rails3上运行。我正在尝试存储会话中最后一个问题的索引。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后):

或者只是我的会话不能正常工作,而不考虑跨域问题


只是一个简单的补充:似乎每次点击服务器时都会创建一个唯一的会话,下次不会检索。它将每一次呼叫视为一次前所未有的新事件。我想这是我所从事的跨领域研究的副产品。有什么解决办法吗?

对延迟回复表示歉意–cookies被删除,无法回答这个问题

我通过jqueryajax调用使用跨域调用,连接工作得很好。我在页面加载时调用一个初始化例程,该例程调用远程服务器并获取一个JSON对象,该对象用于组装在浏览器中运行的调查问卷,并将结果发送回服务器。它在JSON中嵌入了一系列代码,消除了会话的需要。但是当用户更改页面时,我需要服务器知道,当下一个页面得到init调用时,它已经看到了一个连接

我正在使用ActiveRecord会话。我可以在sessions表中看到这些内容的累积,并且似乎每个新连接都会创建一个新会话。这些连接几乎都是通过ajax连接实现的


我正在通过嵌入在页面上的脚本编写cookie,该脚本还连接到远程服务,这表明了一种滚动您自己的持久性机制——从服务器获取密钥,然后检查它。我可能会在服务器端进行IP检查,以将现在的单独会话缝合在一起,我想…

您使用哪种会话?曲奇ActiveRecord?其他?您如何尝试进行跨域ajax调用?由于默认情况下在每个主要浏览器中都会禁用此功能,您如何尝试以这种方式发出请求?您正在测试的浏览器中是否启用了第三方cookie?Dan,这不是“答案”,只是对您的问题的澄清。也许你应该编辑你的问题来添加这些信息,然后删除这个“答案”。
session current stage is 0
session current stage is 2