2012-04-17 68 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表單和其他所有內容的自定義圖像結束。