javascript

Uncaught TypeError: Illegal invocation というエラーが出た。jQueryのajaxでdataにファイルを指定した時に発生。 やろうとしたのはこんな感じ。

    // files はtype="file"のvalueみたいな感じ
    const form = new FormData();
    Array.from(files).forEach((f) => {
      form.append('files[]', f, `${Date.now()}_${f.name}`);
    });
    $.ajax('/images', {
      method: 'post',
      data: form,
      success: (data) => {
        console.log("success")
      },
      error: (data) => {
        console.log("error")
      },
      complete: (data) => {
        console.log("complete")
      },
    });

ajax - Jquery and HTML FormData returns Uncaught TypeError: Illegal invocation - Stack Overflow

processData: falseオプションをつけたら解消した。素直にしたらstringしか渡せないんですね。