Ajax - Form 데이터 통으로 Controller에 전달하기 (form action: 사용x)
이것 저것 공부 중임.
원래 정석대로 form - action & button - submit 으로 데이터 전달 -> Ajax로 form 데이터 전달하는걸로 변경했음..
$.ajax ({
data : $('form').serialize(),
})
serialize( ) 를 꼭 사용해야만 했던 이유는, form 항목이 너무 많아서 하드코딩 할 수없었음...
그런데 아무리 해도 안넘어가지더라...
결론적으로 해결은
1. contextType를 application/json으로 하는게 정석이지만
serialize() 하면 데이터가 json 타입이 아닌 string type으로 전달되기 때문에 contextType 삭제했음.
2. 위와 같은 이유로 controller의 @requestbody 어노테이션 삭제...
이것도 의례 ajax통신 시 데이터 받을 때 썼던 건데.. 이것 자체가 Json -> Object 로 변환시키는 기본 속성을 가져
String 형태의 데이터를 받지를 못함...
위의 방법으로 AJAX 데이터 전달은 성공했음...
+++ 추가적으로 이건 나만 겪은 것일 수 있으나...
전달 데이터 양이 많아서 그런지 데이터 보내고 바로 페이지가 뻗어버리는 상황이 생김..
그래서
- acync : false -> 동기 방식으로 설정 : 응답을 받은 후에 다음 동작을 하는 것...
- timeout : 50000 으로 설정해줌... ( 통신 후 대기 시간을 늘려줌...)
이러닌깐 됐는데... 솔직히 좋은 방식은 아닌 것 같으다.