자바스크립트에서 배열을 만들어서 ajax로 파라미터를 보내려고 했다.
아래처럼..
<script>
function test() {
var a = new Array();
a.push('aaa');
a.push('bbb');
$.ajax({
url : '/test/save',
method: 'post',
data: {"value" : a},
success : function(data) {
alert("성공");
}
});
}
</script>
내가 원한 요청 URL은 이거였다.
http://marobiana.tistory.com/test/save?value=aaa&value=bbb
근데 실제로 간것은.. 이렇게 깨짐 ㅎㅎ
http://marobiana.tistory.com/test/save?value%5B%5D=aaa&value%5B%5D=bbb
해결법은 아래코드를 ajax 호출전에 추가하면 된다.
jQuery.ajaxSettings.traditional = true;
스택오버플로에서 찾았는데,
jquery 1.4 이상부터
요즘 스크립트 언어(루비나 php)같은 프레임워크를 수용하기 위해
반복적인 파라미터의 경우 자동으로 serialize를 한다고한다.
그것을 막으려면 저 세팅을 해주면 되는 것이다.
* 주의할 점
ajax에서 배열 넘길 때 data:{"value[]" : a},
이렇게 [] 표시를 붙이는 경우가 있는데 그것을 붙이면 안.된.다.
'개발 > Javascript' 카테고리의 다른 글
input type 엔터키 서브밋 되는 현상 (0) | 2017.02.14 |
---|---|
모바일 웹 브라우저에서 앱 설치여부에 따라 앱 또는 마켓으로 이동시키기 (6) | 2015.01.09 |
[jQuery] Ajax의 흐름과 예제 (10) | 2013.06.14 |
Flash 위에 게시판 올리는 법 (0) | 2013.04.30 |
jqGrid] 동적으로 그리드 나타내기 (6) | 2013.04.30 |