Uncaught TypeError: Illegal invocation 오류와 해결 방법

에러메세지

 
  <form id="formdata" name="search" action="/search">
  </form>
 
 const fData = new FormData($("#formdata")[0]);
 
 $.ajax({
        type: "POST",
        url: url,
        data : fData,
        dataType: "html",
        success: function(data) {
   			console.log('success!');
        },
        error: function (request, status, error) {
            console.log("request.responseText",request.responseText);
        }
    });
}

Jquery를 이용해 FormData에 데이터를 담아 $.ajax로 데이터를 전송하던중 이런 오류가 발생했다.

 

 

해결 방법

contentType: false,
processData: false,
cache: false,

기본적으로, 데이터 옵션에 객체로 전달된 데이터는 기본 콘텐츠 유형 "application/x-www-form-urlencoded"에 맞게 쿼리 문자열로 변환된다. DOMDocument 또는 기타 처리되지 않은 데이터를 보내려면 이 옵션들을 재설정( false ) 해줘야 한다.