Contents
see List작성일 2015. 04. 08.
jQuery에서 Ajax로 배열 전송하기
jQuery Ajax에서 배열 파라미터를 서버로 전송할 때 전통적인 방식을 사용해야 합니다.
문제 상황
기본 jQuery Ajax는 배열을 ids[]=1&ids[]=2 형식으로 전송하는데, Spring 등 일부 백엔드에서는 이를 인식하지 못합니다.
해결 방법
// 전역 설정
$.ajaxSettings.traditional = true;
// 또는 개별 요청에서 설정
$.ajax({
url: "/api/items",
type: "POST",
traditional: true, // 핵심 옵션
data: {
ids: [1, 2, 3, 4, 5]
},
success: function(response) {
console.log(response);
}
});traditional 옵션 차이
// traditional: false (기본값)
// 전송 형식: ids[]=1&ids[]=2&ids[]=3
// traditional: true
// 전송 형식: ids=1&ids=2&ids=3다양한 전송 방법
// 방법 1: JSON으로 전송
$.ajax({
url: "/api/items",
type: "POST",
contentType: "application/json",
data: JSON.stringify({ids: [1, 2, 3]}),
success: function(response) {}
});
// 방법 2: param 메서드 사용
var data = $.param({ids: [1, 2, 3]}, true);
$.post("/api/items", data);
// 방법 3: 문자열로 직접 조합
var ids = [1, 2, 3];
var params = ids.map(id => "ids=" + id).join("&");
$.post("/api/items?" + params);Spring Controller에서 받기
@RequestMapping("/api/items")
public void getItems(@RequestParam("ids") List ids) {
// ids: [1, 2, 3]
}
// 또는
@RequestMapping("/api/items")
public void getItems(@RequestParam("ids") int[] ids) {
// ids: [1, 2, 3]
} javascript
| No | 작성일 | Title |
|---|---|---|
| 360 | 2016. 05. 31. | [ bootstrap ] bootstrap modal multi modal wheel and focus not work |
| 359 | 2016. 05. 03. | [ javascript ] 이벤트 전파 |
| 357 | 2016. 04. 16. | [ datatable ] jquery datatable and editor exemple 사용법 예 |
| 312 | 2015. 07. 02. | [ jquery ] 선택된 라디오 박스 값 이름으로 가져오기 |
| 305 | 2015. 06. 16. | [ dynatree ] dynatree 함수들 |
| 286 | 2015. 05. 30. | [ javascript ] 운영체제 비트 확인하기 |
| 275 | 2015. 05. 04. | [ jquery ] dynatree option 옵션들 |
| 269 | 2015. 04. 08. | [ javascript ] jquery 에서 ajax 로 배열 넘기기 |
| 268 | 2015. 04. 08. | [ javascript ] jquery map() 을 이용하여 여러 폼값을 배열로 만들기. |
| 267 | 2015. 04. 08. | [ javascript ] jquery 로 해당 객체들중에 대상 선택하여 인덱스값 가져오기 |