Content

Board ID 1234
Writer 허진경 (나자바바)
Write Date 2023-08-30 10:53:39
Subject ajax 요청시 URL에 %5B%5D 가 있으면...
Content ajax 요청 시 URL에 %5B%5D 가 있을 경우는 같은 이름의 파라미터가 여러 개 있을 경우이다. 예를 들면 favorite 매개변수의 값에 apple, cherry, banana가 매핑되어 있고, 서버의 요청 URL이 /insert 일 경우 파라미터가 붙은 ajax url은 /insert?favorite[]=apple&favorite[]=cherry&favorite[]=banana 형식으로 전달 되는데 []가 브라우저 URL에서 %5B%5D로 표시된다. 이것을 스프링 핸들러 메서드가 받으려면 다음 두 가지 방법 중 하나를 사용할 수 있다. 1. 스프링의 핸들러 메서드 매개변수 파라미터를 다음처럼 지정한다. @GetMapping("/insert") public String insertDate(@RequestParam(name="favorite[]") List favorite, Model model) { ... 2. JQuery 설정을 변경한다. $.ajaxSetup({traditional: true}); 이렇게 하면 $favorite[]=apple&favorite[]=cherry 형식이 아닌 &favorite=apple&favorite=cherry 형식으로 보내진다.