ajax로 파일업로드할떄
contentType: false
processData: false
이 없으면 illegal invocation Error가 뜸.
결론: ajax로 파일 업로드할 때는
contentType: false
processData: false
======================================================
2021.03.04 내용 추가
Form 데이터를 감싸서 파일로 던질때는 전부다 Name으로 HTML태그로 넣어야지 데이터를 보낼 수 있고.
Form ID로 아래와 같이 감싸서 data를 Ajax로 보내야지만 back단으로 보낼 수 있다.
var formData = new FormData(vForm[0]);
이때 vForm은 해당 form의 ID를 넣어주면 됩니다.
아래는 예시
var vForm;
if (matchMedia("screen and (min-width: 1025px)").matches)
{
//pc
vForm = $("#SolutionQ_Form_pc");
}
else
{
//mo
vForm = $("#SolutionQ_Form_mo");
}
var formData = new FormData(vForm[0]);
$.ajax({
type: "POST",
url: "/HP_File/Upload_EmailFiles",
async: true,
dataType: "json",
contentType: false, //Ajax로 이메일 보낼 때 필수 추가 하여야 합니다.
processData: false, //Ajax로 이메일 보낼 때 필수 추가 하여야 합니다.
data: formData,
success: function (result) {
}
});