Ajax 데이터 처리

Lee Seung Jae·2021년 5월 4일
0

문제 발생

클라이언트로 부터 데이터를 받아 처리하는 과정에서 단순하게 DB에 Insert 할 데이터만 서버로 보내주고 return 하는 값은 없도록 하려고 void로 클래스를 설정을 했는데 HTTP Status는 200을 향하지만 Ajax에서는 error: function() 로직을 처리하는데 뭐가 문제인지 한참 고민하다가 발견했다.

소스는 다음과 같다

Controller

@RequestMapping(value = "/example/test/insertDiagram.do", method = RequestMethod.POST)
    @ResponseBody
    public void insertDiagram(@RequestBody String diagram) {

diagramService.insertDiagram(diagram);

    }

여기에서는 문제되는 로직은 없었다.

계속 로직과 넘겨주는 값을 바꾸어 보았는데도 불구하고 계속 에러를 발생시켜서 고민 한 결과 클라이언트에서 문제가 있었다.

Client

$.ajax({
    url: "/example/test/insertDiagram.do",
    type: "POST",
    dataType: 'json',
    contentType:'application/json; charset=utf-8',
    data: JSON.stringify({
    "처리할 데이터",
  }),
  success: function(){
    alert("저장완료");
  },
  error: function(){
    console.error("insertDiagram.do Error");
  }
});

Ajax 코드에서 살펴보면 dataType : 'json'이 있다. Ajax의 데이터 반환 형태는 json인데 실질적으로 넘어오는 반환값은 void로 없다. 반환값의 불일치로 발생하는 에러였다.

해결방법은...
-> dataType : 'json'를 지워버린다.😀

profile
💻 많이 짜보고 많이 경험해보자 https://lsj8367.tistory.com/ 블로그 주소 옮김

0개의 댓글