백엔드와 작업 시 파라미터 값을 보내야 하는 일이 빈번한데, 이번에 처음 겪은 이슈가 있어 작성해둔다.
이건 내가 작성한 ajax 코드가 아니었고, 유지보수 업무였다.
(ajax 옵션을 잘 몰랐던 문제가 가장 컸다)
아래와 같이 작성했던 ajax 코드가 있었다.
데이터가 전송이 안되서 문제를 찾아보던 중에 processData를 알게되었다.
JS
$.ajax({
url : '',
processData : false,
contentType : "application/json",
data : {
id : 'abcd'
},
type : "GET",
success : function(res){
//.......
}
});
processData 란?
기본값은 true다.
ajax 통신을 통해 데이터를 전송할때, 기본적으로 key와 value값을 Query String으로 변환해서 보낸다.
데이터 값에 따라 (key=value&key=value) 또는 (key:value, key:value) 이런 식으로 보내게되는데,
이때 이 processData가 false로 되어 있으면 Query String으로 설정하지 않는다.
processData는 파일 전송 시에 사용한다고 한다.
그래서 processData를 false하고 데이터를 보낸 후 피들러를 확인해보면 [object object]로 찍힌다.
processData값을 지워서 해결했다.
'Javascript' 카테고리의 다른 글
placeholder.js 라이브러리 소스 분석 도전, 스터디 개념 (0) | 2019.06.05 |
---|---|
02. Rest 파라미터 - 스프레드(Spread) 연산자와 Rest 파라미터 (0) | 2018.10.29 |
01. Spread 연산자 - 스프레드(Spread) 연산자와 Rest 파라미터 (0) | 2018.10.29 |
Google Javascript Maps API를 사용하여 지도 올리기! (0) | 2018.10.26 |
input 포맷(전화번호 입력받기)__regex__replace__substr (0) | 2018.10.24 |
버튼 클릭하여 해당영역으로 스크롤 이동하기 scrollintoview(); (0) | 2018.10.23 |
자동으로 연도 변경하여 삽입하기 (0) | 2018.10.23 |
마우스 휠로 전체 페이지 영역 넘기기 (0) | 2018.10.23 |