카테고리 없음

Ajax - Form 데이터 통으로 Controller에 전달하기 (form action: 사용x)

greenhj17 2023. 9. 26. 10:47

이것 저것   공부 중임. 

 

원래 정석대로   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 으로 설정해줌... ( 통신 후  대기 시간을 늘려줌...) 

 

이러닌깐 됐는데... 솔직히 좋은 방식은 아닌 것 같으다.