Rails 3 で Uploadify を使用しています。フォームは、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 ステップのフォームで作業しているときに発生します。2 番目のステップでは、必要なパラメーターをセッション変数に保存します。すべてのステップで、パラメータをセッション変数とマージして最新の状態に保ちます。
2 番目のステップでは、セッションに問題がないように見えます (ログに出力すると、すべての情報がそこに表示されます)。これは、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 でのみ発生します。
これをデバッグする方法についてのアイデアはありますか?