Ajax Patch Method 에러 대환장 파티
1차
상황 : ajax patch(데이터의 일부 수정을 위해) 요청을 보내고 싶다
문제 : javascrpt객체를 보내도, json 데이터를 보내도 controller에서 받지를 못했다
(당연히 json 때에는 @RequestBody는 파라미터에 당당히 붙어있다)
심지어 Get, Post는 되는데 patch만 안되더라
해결 : cotentType에 "application/json-patch+json; charset=utf-8"로 하고
데이터를 javascript객체에 JSON.stringify 해서 보내니까 받아졌다
2차
상황 : security를 적용하면서, ajax patch로 요청에 data를 json 형식으로 보내기
문제 : 403에러가 엄청 뜨길레 security 잘못인줄 알고 security-context 설정을 주석
-> 그럼에도 403에러가 뜨길레 이번에도 patch 문제인가 했는데 post도 안되는 상황이 발생
해결
위에서 보이듯(솔직히 잘 안보인다)
요청 헤더에 csrf와 관련된 값이 추가되어 있지 않아서 나온 에러였다
3차
상황 : patch로 여러개의 data를 (javascript 객체에 2개 이상의 데이터 넣기, 예 { a : b, c : d }) 보내기
문제 : controller에서 a, c가 받아지지 않는다(@RequestBody를 붙인 String 변수 2개)
그렇다고 json이니까 파라미터를 (@RequestBody를 붙인) string 변수 1개로 해도 제대로 받아지지 않았다
Map(1차 Stirng,String / 2차 Object, String)으로 해도 에러
해결 : @RequestBody Map<String, String>으로 하니 아주 깔끔하게 해결
-> 강사님이랑 둘이서 답을 코앞에 두고 빙빙 돌고 있던 상황이라 허무해부렀다