1. ホーム
  2. ajax

jS Ajaxアップロードファイルのエラー "Uncaught TypeError: 不正な呼び出し"

2022-02-19 04:31:55
<パス

ajaxからバックエンドに画像や文字列などを含むデータを渡す際に報告されるエラー。エラーコード

jquery-3.1.1.min.js:4 Uncaught TypeError: Illegal invocation

エラーの原因
jQuery Ajaxによるファイルアップロードの処理。
ajaxを使用してバックエンドにデータを送信する際、画像データのパラメータタイプがfileの場合、オブジェクトであり、文字列値ではありません。このため、次のようなエラーが発生します。

var formData = new FormData();
formData.append("file",$("#dcim1")[0].files[0]);
formData.append("real_name", $("#name").val());

まず、上記の問題がパラメータの書き間違いによるものかどうかを確認し、間違ってオブジェクトとして書かれている場合は、対応するパラメータタイプを変更してください。
アップロードしたいデータの1つがオブジェクト型であることが確かであれば、そのデータに
processData: false
contentType : false

$.ajax({ 
url : Url, 
type : 'POST', 
data : formData, 
// Tell jQuery not to process the data sent
processData : false, 
// Tell jQuery not to set the Content-Type request header
contentType : false,
dataType: "json",
success: function(data) {
    ...
}

テストが終了したら再送信してください。
参考 http://www.jb51.net/article/87654.htm