백엔드와 작업 시 파라미터 값을 보내야 하는 일이 빈번한데, 이번에 처음 겪은 이슈가 있어 작성해둔다.

이건 내가 작성한 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값을 지워서 해결했다.

 

 

 

 

+ Recent posts