jQuery Ajax에서 data를 json 방식으로 Array를 전달하려고,,,
꽤 많은 삽질을 했다,,,
역시 안쓰면 금방 까먹는것 같다,,,
별다른건 없는데 form에 있는 데이터가 아니어서 강제적으로 json형태로 만들어 주고서
ajax call 하기만 하면 되는데 왜 안될까,,,
json 은 한개의 key 값으로 배열형태로 넘겼다,,,
그런데 server 단에서 getParameterNames을 받질 못하는 상황이 발생하였다,,,
넘어온 파라미터와 값을 찍어보니 내가 의도한 파라미터 명으로 넘어가지 않았다,,,
난 ‘key’ 명으로 배열로 받을거라 생각 했는데,,,
실제 넘어온건 ‘key[]’ 명으로 넘어왔다,,,
내가 json 데이터를 잘못 만들었나 싶어서 수 많은 삽질을 했다,,,
삽질과 구글링을 해보다 jquery.ajax api를 다시 좀보니,,,
data에 값이 배열인 경우에는 동일한 키값을 같는 직렬화 세팅을 해주는 문구가 있었다,,,
젠쟝,,,
결국은 하위 코드 주석처리 해놓은 traditional: true 를 추가해주니 의도한대로 ‘key’ 명으로 배열로 받을수 있었다,,,
사실 jQuery.param도 보긴 했는데,,,
꼼꼼하게 안보고 안된다는 생각에 무한 삽질 시간이 좀 후회스럽다,,,
jquery 1.4부터인가 바뀐거 같은데,,,
내가 마지막으로 써본 버전이 몇이던가,,,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | var params = []; var listSize = 5; for (var nRow = 0; nRow < listSize; nRow++) { params.push(nRow); } $.ajax({ url: callUrl, type: 'POST', data: {'key':params}, dataType: 'json', //traditional: true, success: function (r) { }); }, error: function (xhr, status, error) { alert(xhr.status); alert(error); } }); //server단 확인 Enumeration em = request.getParameterNames(); while(em.hasMoreElements()){ String parameterName = (String)em.nextElement(); String parameterValue = request.getParameter(parameterName); String[] parameterValues = request.getParameterValues(parameterName); if(parameterValues != null){ for(int i=0; i< parameterValues.length; i++){ System.out.println("array_" + parameterName + "=" + parameterValues[i]); } } else { System.out.println(parameterName + "=" + parameterValue; } } |
michael kors outlet store
It impressed, I need to say. Really rarely do I encounter a weblog that each educative and entertaining, and let me let you know, you’ve hit the nail on the head.
kyu
Server단 오류났네요.
for(int i=0; i<parameterValue.length; i++){
를
for(int i=0; i<parameterValues.length; i++){
로 고쳐주세요
YongPwi
안녕하세요
알려주신 대로 변수명에 오타가 있었네요
바로 수정하였습니다.
감사합니다.
Maillot Chelsea
Hello there I am so grateful I found your blog, I have bookmarked it.
lyonnais shirt
Great, thanks for sharing this blog.Thanks Again.
camiseta del manchester city
Thanks for sharing, this is a fantastic blog.Really thank you! Awesome.
cheap football shirts replica
I really enjoy the blog.Much thanks again. Great.