0

Rails アプリ (3.2.12) では、jquery-fileupload-rails gem を使用して、ユーザーがプロフィール写真をアップロードできるようにしています。Chrome と Safari ではすべて正常に動作しますが、Internet Explorer (バージョン 10 でテストしました) では、アップロードするファイルを選択することさえできません。[ファイルを追加] ボタンをクリックすると、ファイルを選択するダイアログが表示される代わりに、アップロード アクションに対して空のリクエストが即座に発行され、空の写真オブジェクトを示す json レスポンスが返されます。これは、ファイルのアップロードを初期化するための現在の js です (IE と csrf-tokens の問題からコードをいくつか追加しました)。

// Initialize the jQuery File Upload widget:
  $('#fileupload').fileupload({
    dataType: 'json',
    acceptFileTypes: /(\.|\/)(gif|jpe?g|png|tiff)$/i
  });

  // Enable iframe cross-domain access via redirect option:
  $('#fileupload').fileupload(
      'option',
      'redirect',
      window.location.href.replace(/\/[^\/]*$/, '/photos?%s')
  );

  //add csrf token manually for ie iframe transport
  $('#fileupload').bind('fileuploadsend', function(event, data) {
    auth_token = $('meta[name="csrf-token"]').attr('content');
    data.url = data.url + '?authenticity_token=' + encodeURIComponent(auth_token); 
    $.blueimp.fileupload.prototype.options.send.call(this, event, data);
  });

および応答用のコントローラー コード。コンテンツ タイプを「text/plain」に設定済みです (できれば修正することをお勧めします)。

format.html {
    render json: [@photo.to_jq_upload].to_json,
    content_type: 'text/plain', #content_type: 'text/html',
    layout: false
}
format.json { 
    render json: {files: [@photo.to_jq_upload]},
    content_type: 'text/plain',
    status: :created, 
    location: @photo
}

これをIEで動作させる方法を知っている人はいますか?ありがとう :)

4

1 に答える 1