Javascript
ajax 이슈, 파라미터 값이 안 보내져요. (processData)
주섬이
2018. 10. 24. 18:38
반응형
백엔드와 작업 시 파라미터 값을 보내야 하는 일이 빈번한데, 이번에 처음 겪은 이슈가 있어 작성해둔다.
이건 내가 작성한 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값을 지워서 해결했다.
반응형