시스템아 미안해
ajax formData보내기 (Illegal invocation) 본문
1. dataType : success function 에 전달될 argument 의 형태를 지정하는데 사용.
2. file 전송을 위해 ajax에 contentType: false, processData: false 옵션을 추가한다.
2-1. processData : false > DOM documnet 또는 기타 처리되지 않은 파일을 보낼때 false로 지정한다.
(일반적으로 서버에 전달되는 query string 형태 방지)
2-2. contentType : false > "multipart/form-data"로 전송되게 할때 false로 지정한다.
function saveBoard() {
var form = $("#dataForm")[0];
//FormData : js에서 지원, <form> 과 같은 효과를 가져다주는 key/value 가 저장되는 객체
var formData = new FormData(form);
//1. form객체에 파일담기
for (var x = 0; x < fileArr.length; x++) {
// 삭제 안한것만 담아 준다.
if (!fileArr[x].is_delete) {
formData.append("fileList", fileArr[x]);
}
}
//2. 제목, 내용 빈 값 체크
let strSubject = $("#strSubject").val();
let strContent = $("#strContent").val();
if(strSubject == ""){
alert("제목을 입력해주세요");
$("#strSubject").val("");
return;
}
if(strContent == ""){
alert("내용을 입력해주세요");
$("#strContent").val("");
return;
}
//3. 회람인 담기
let emp_arr = new Array();
$("input[name=emp_seq]:checked").each(function(){
emp_arr.push($(this).val());
});
formData.append("emp_arr",emp_arr);
//4. 회람여부 담기
let strCirculYn = "";
if(emp_arr.length > 0){
strCirculYn = "Y";
}else{
strCirculYn = "N";
}
$.ajax({
method : "POST",
url : "../boards/insertBoard",
data : formData,
contentType : false,
processData: false,
dataType : 'json',
success : function(res) {
alert("등록을 완료하였습니다.");
/* parent.$.fancybox.close('true'); */
},
error : function() {
alert("에러가 발생하였습니다.");
return;
}
})
}
'web > javascript' 카테고리의 다른 글
querySelectorAll VS getElementsByTagName (0) | 2023.04.10 |
---|---|
jsp cdn안먹을때 $.getScript로 동적으로 로드시키기 (0) | 2023.01.09 |
var, let, const / 변수호이스팅 (0) | 2022.12.09 |
윈도우 우클릭 메뉴와 구현하고자 하는 우클릭 이벤트가 겹칠때 (0) | 2022.12.08 |
a태그에서 함수 호출하는 방법 (0) | 2022.12.07 |