일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 문자열
- 인증 및 세션관리
- 고전게임
- Lenovo D330-10igm
- 자바스크립트
- c#
- retropie
- ubuntu
- D330-10igm
- 윈도우 8
- HTML5
- 셀프인테리어
- fiddler
- 한컴오피스
- 우분투
- 보안
- 인테리어
- 이보드
- 진단항목
- 안드로이드
- ASP.NET
- Web Programming
- 고전게임기 만들기
- 웹
- D330
- 네트워크
- 피들러
- 단열
- WEB
- network
- Today
- Total
Kinesis´s Open Document
jQuery Ajax 사용시 data 에 json형 array 또는 object 형 값 전달시 문제 본문
jQuery Ajax 를 이용하여 비동기식 통신을 사용하게 되는 경우 중에는 JSON 형태로 data를 주고 받는 경우가 있다. (아니, 사실상 대게 가장 빈번하게 쓰는 형태가 JSON 형태가 아닌가 싶다.)
이 jQuery Ajax 가 기타 서버측 스크립트 언어에서는 어떤식으로 활용하는지 모르겠지만, ASP.NET 에서 asmx 의 Web Service([WebMethod]) 과 데이터를 주고 받는 연동처리를 들어가게 되면, $.ajax() 의 인자값의 data 가 String 형태를 가져야만 정상적인 WebMethod 호출이 이루어진다.
요컨데
형태로는 정상 호출이 되지 않고 error 이 뜨게 되나, 같은 값으로
이와 같은 형태가 되면 정상적인 배열형태의 인자값으로 전달이 된다.
이 부분을 해결하기 위한 가장 쉬운 방법은 data 를 전달시에 JSON.stringify() 를 이용하는 것이다.
이와 같은 형태로 말이다. 그런데 이녀석도 문제가 있다. 빌어먹을 인터넷 익스플로러 호환성 문제로 IE8 미만의 버젼에서는 지원을 하지 않는다는 것이다. 그렇다고 가변적으로 변하는 배열(Array)나 객체(Object)를 수작업으로 " " 로 싸넣을 수도 없는 노릇이 아닌가. 결과적으로 해결 방안은 JSON.stringify() 과 같은 함수를 생성하여 대체사용을 하거나, 브라우저의 버젼을 체크하여 버젼에 따라 실행되는 함수 부분에 차등을 두는 방법 밖에는 딱히 이렇다 할 대안이 없다.
업무 소프트웨어가 추가적인 프로그램의 설치가 필요 없는 웹 서비스 환경으로 넘어가고 있어서 회사에서 프로젝트를 진행하면서 작업을 하고 있지만, 역시 항상 발목을 붙잡는 것은 국내 브라우저 사용율의 90%가 넘는 인터넷 익스플로러가 보다 나은 웹 서비스 환경으로의 진화를 막고 있는 것처럼만 느껴진다.
'MEMO/기술 자료 > Ajax' 카테고리의 다른 글
Ajax 를 이용한 비동기식 통신에 관한 정리…… (0) | 2012.09.03 |
---|