2012-04-17 42 views
0

我正在使用Uploadify with Rails 3.该表单适用于除IE以外的所有浏览器。会话的一部分被删除

我正确设置了我的csrf变量,以便会话不会完全被吹走。

<% key = Rails.application.config.session_options[:key] %> 
var uploadify_script_data = {}; 
var csrf_param = $('meta[name=csrf-param]').attr('content'); 
var csrf_token = $('meta[name=csrf-token]').attr('content'); 

uploadify_script_data[csrf_param] = encodeURI(encodeURIComponent(csrf_token)); 
uploadify_script_data['<%= key %>'] = encodeURI(encodeURIComponent('<%= cookies[key] %>')); 

$('#uploadify').uploadify({ 
    ... 
    scriptData  : uploadify_script_data, 
    ... 
}); 

当我使用3步表单时出现问题。在第二步中,我将所需的参数保存到会话变量中。在所有步骤中,我将params和会话变量合并以保持最新。

第二步看起来会话很好(我将它打印到日志中,所有信息都在那里),但这也是我使用uploadify的步骤。在处理ajax调用的控制器中,我打印出会话,并可以看到会话ID并设计信息,但我正在使用的object_params被完全重置为空的哈希。

这是一个处理上传控制器:

{"session_id"=>"fa12222657a979c92daf1a04dcec7fa8", "_csrf_token"=>"YCN8BvE8+6Vxc2PWgpOvZBhYufKdsTfEnJVkbTSdWHI=", "warden.user.user.key"=>["User", [20], "$2a$10$JCkVLxybPQYclyp2t1gnpu"], "object_params"=>{}} 

同样,这只是发生在IE8和IE9。

有关如何调试的任何想法?

其他资源:
Rails Carrier Wave with JQuery Uploader

回答

0

我不得不写这个当成一个IE浏览器的问题。使用IE的标准Uploadify表单和其他所有内容的自定义图像结束。