0

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 でのみ発生します。

これをデバッグする方法についてのアイデアはありますか?

追加リソース:
Rails Carrier Wave with JQuery Uploader

4

1 に答える 1

0

私はこれをIEの問題として書き留めなければなりませんでした。IEの標準のUploadifyフォームと、その他すべてのカスタムイメージを使用することになりました。

于 2012-06-07T16:01:47.457 に答える