ラボ > Javascript関連:ajax
ajax()を実行時に「Illegal invocation」が出たときの対処
作成日:2018-03-12, 更新日:2018-03-12
基本
ajax()を実行すると下記のようなエラーが出てきた。
Uncaught TypeError: Illegal invocation
※「Illegal invocation」は「不正な呼び出し」。
調べると「FormData()」を使うと出てくるそうだ。
※他にも予約語を使うときも出てくるそうだ。
エラーと対処
「processData: false」が無いとダメだそう。
▼エラーになったソース
~ 略 ~ var formAry = $(this).parents('form').serializeArray(); var fd = new FormData(); $.each(formAry, function(i, field){ fd.append(field['name'], field['value']); }); $.ajax({ url: url, type: 'post', data: fd 以下、略
▼修正したソース
~ 略 ~ var formAry = $(this).parents('form').serializeArray(); var fd = new FormData(); $.each(formAry, function(i, field){ fd.append(field['name'], field['value']); }); $.ajax({ url: url, type: 'post', processData: false, data: fd 以下、略