1. ホーム
  2. jquery

[解決済み] JqueryとHTMLのFormDataが "Uncaught TypeError: Illegal invocation" を返す

2023-05-10 19:11:19

質問

画像ファイルをアップロードするために、このスクリプトを使用しています。 http://jsfiddle.net/eHmSr/

$('.uploader input:file').on('change', function() {
  $this = $(this);

  $('.alert').remove();

  $.each($this[0].files, function(key, file) {
    $('.files').append('<li>' + file.name + '</li>');

    data = new FormData();
    data.append(file.name, file);

    $.ajax({
      url: $('.uploader').attr('action'),
      type: 'POST',
      dataType: 'json',
      data: data
    });
  });
});

しかし、アップロードボタンをクリックすると、JavaScriptコンソールはこのエラーを返します。

Uncaught TypeError: Illegal invocation 

<イグ

助けてもらえますか?

どのように解決するのですか?

jQueryは data 属性を処理し、値を文字列に変換します。

追加する processData: false をオプションオブジェクトに追加すると、エラーは修正されますが、問題が修正されるかどうかはわかりません。

デモです。 http://jsfiddle.net/eHmSr/1/