본문 바로가기
개발공부/개발하다_발견함

ajax가 제대로 동작하지 않아서 오만짓을 다 했는데 기존 코드를 뜯어보다 발견한 방법이 있어서 백업했더니 아니었고, 재시도하다가 결국엔 방법을 찾아냄

by 맙소사 2022. 3. 29.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    @RequestMapping(value="/test.do")
    public ModelAndView test(HttpServletRequest request
            , HttpServletResponse response
            , String param) throws Exception {
        log.debug("-------------->");
        
        Map<String, Object> resultMap = new HashMap();
        response.setContentType("application/x-json;  charset=UTF-8"); //한글처리
        ModelAndView targetView = new ModelAndView("jsonView" , "resultMap", resultMap);
        
        resultMap.put("ajaxAnswer""결과 보내기");
        
        log.debug("---------------End");
        targetView.addObject("resultMap", resultMap);
        return targetView;
    }    
cs

아니? 위의 내용도 아니었음. 회사 내부 코드중에 뭔가 인터셉터라던가 고정되어있는 구간이 있어서 계속 충돌하나봄.

 

1. 리턴값을 ModelAndView 또는 Boolean으로 주면 success로 넘어가는 parameter값이

기존 시스템에서 지정한것으로 보이는 오류 페이지 html 코드가 리턴되고

(아마도 페이지를 지정해줘야하는데 페이지를 지정하지 않아서 그런 것 같음)

 

2. 리턴값을 String으로 주면 success로 parameter가 웹 콘솔에 예쁘게 리턴되지만 IDE콘솔에는...

우와아아악

2022-04-12

위 에러를 이리저리 검색해봤는데 getOutPutStream()에 대한 문제를 해결하지 못했다... 

 

1
2
3
4
5
6
JSONObject obj = new JSONObject();
response.setContentType("text/json; charset=utf-8");
PrintWriter out = response.getWriter();
out.write(obj+"");
out.flush();
out.close();   
cs

그래서 어영부영 위 코드를 추가해줘서 콘솔에 뜨는 에러를 없앰 ㄱ- 진짜 힘들다

 

2022-04-13

근데 문제가 있음 저렇게 보내면 값이 [object Object]로 날아옴

 

2022-04-14

저 따위로 날아오는 이유를 알아냈다.

console.log()로 콘솔에 출력할때 아래처럼 String이랑 합쳐서 출력하면 안된다. 왜냐면 그러면 String 형변환이 됨.

그래서 아래처럼 뽑아줌

1
2
console.log("여기요 여기! return :" + data);
console.log(data);
cs

두번째 줄이 바로 object 형태로 잘 넘어온 귀염둥이

그래도 많이 발전했다. 이상한 에러를 피해서 와 ..............

역시 개발은 못하는게 없다 개발은 신이야 그런 개발을 하는 나는 무적이고(우매함의 봉우리에 올라섬)

근데 뭔가... 저 비어있는 객체 느낌이... obj에 추가된게 없어서 출력이 안 나오는 것 같길래

컨트롤러쪽 코드를 살펴보다가 JSONObject 객체에다가 값을 집어넣어줬더니 됐다!!! 

아............... 너무너무너무너무 행복하다... 이 시스템에서 유지보수 하면서 ajax 할 때 마다 항상 이상한 충돌이 났는데 이제 이런 식으로 해결하면 될 것 같아. 쏘해피 ~ 근데 저 친구가 나중에 다른 쪽에 어떤 영향을 미치게 될 지는 가늠할수가 없다... 두려워... 근데 제대로 close 해주니까 상관없지않나? 싶기도 함 ;-; 힝

 

 

댓글