Ajax 향상 편 (6) 서버 엔 드 스 크 립 트 와 프로그램 에서 JSON 으로 응답 하고 답장 합 니 다.

JSON 은 자 바스 크 립 트 대상 과 문자열 값 사 이 를 빠르게 변환 할 수 있 도록 Ajax 프로그램 에 적용 되 는 유효한 형식 입 니 다.Ajax 응용 프로그램 은 일반 텍스트 를 서버 쪽 프로그램 에 보 내 고 일반 텍스트 를 받 기 에 매우 적합 하기 때문에 텍스트 를 생 성 할 수 없 는 API 보다 텍스트 를 생 성 할 수 있 는 API 가 자 연 스 럽 게 바람 직 합 니 다.그리고 JSON 은 로 컬 자 바스 크 립 트 대상 을 처리 할 수 있 도록 해 줍 니 다. 이 대상 들 을 어떻게 표시 하 는 지 신경 쓰 지 않 아 도 됩 니 다.XML 도 텍스트 와 유사 한 이점 을 제공 할 수 있 지만 자바 스 크 립 트 대상 을 XML 로 변환 하 는 데 사용 되 는 기 존 API 몇 개가 JSON API 가 성숙 하지 않 습 니 다.자 바스 크 립 트 대상 을 만 들 고 처리 할 때 선택 한 XML 세 션 API 와 협업 할 수 있 도록 조심해 야 할 때 가 있 습 니 다.그러나 JSON 에 대해 서 는 상황 이 크게 다르다. 거의 모든 가능 한 대상 유형 을 처리 할 수 있 고 아주 좋 은 JSON 데 이 터 를 되 돌려 줄 것 이다.따라서 JSON 의 가장 큰 가 치 는 데이터 형식 언어 가 아 닌 자 바스 크 립 트 를 자 바스 크 립 트 로 처리 할 수 있다 는 점 이다.자바 스 크 립 트 대상 을 사용 하 는 모든 기술 을 코드 에 적용 할 수 있 습 니 다. 이 대상 을 텍스트 로 바 꾸 는 데 신경 쓰 지 않 아 도 됩 니 다.그 후에 다음 과 같은 간단 한 JSON 방법 으로 호출 할 수 있 습 니 다.
String myObjectInJSON = myObject.toJSONString();
이제 결과 텍스트 를 서버 에 보 낼 수 있 습 니 다.
* JSON 을 서버 에 보 내기 --- GET 를 통 해 JSON 을 이름 / 값 으로 보 내기
JSON 데 이 터 를 서버 에 보 내 는 가장 쉬 운 방법 은 텍스트 로 변환 한 다음 이름 / 값 이 맞 는 값 으로 보 내 는 것 이다.JSON 형식의 데 이 터 는 상당히 긴 대상 입 니 다. 목록 1 과 같이 보일 수 있 습 니 다. 목록 1. JSON 형식의 간단 한 JavaScript 대상 입 니 다.               
var people =  { "programmers": [    { "firstName": "Brett", "lastName":"McLaughlin",
 "email": "[email protected]" },    { "firstName": "Jason", "lastName":"Hunter",
 "email": "[email protected]" },    { "firstName": "Elliotte", "lastName":"Harold",
 "email": "[email protected]" }   ],  "authors": [    { "firstName": "Isaac", 
 "lastName": "Asimov", "genre": "science fiction" },    { "firstName": "Tad", 
 "lastName": "Williams", "genre": "fantasy" },    { "firstName": "Frank", 
 "lastName": "Peretti", "genre": "christian fiction" }   ],  "musicians": [    
 { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },   
 { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }   ]  }

  서버 에 이름 / 값 으로 보 내 려 면 다음 과 같 아야 합 니 다.
var url = "organizePeople.aspx?people=" + people.toJSONString();
 xmlHttp.open("GET", url, true);
 xmlHttp.onreadystatechange = updatePage;
 xmlHttp.send(null);

 
질문 이 있 습 니 다. JSON 데이터 에 빈 칸 과 여러 문자 가 있 습 니 다. 웹 브 라 우 저 는 계속 컴 파일 하려 고 합 니 다.이 문자 들 이 서버 에 (또는 서버 에 데 이 터 를 보 내 는 과정 에서) 혼란 을 일 으 키 지 않도록 하려 면 자바 script escape () 함수 에 다음 과 같이 추가 해 야 합 니 다.
var url = "organizePeople.aspx?people=" + escape(people.toJSONString());
 request.open("GET", url, true);
 request.onreadystatechange = updatePage;
 request.send(null);

 
이 함 수 는 빈 칸, 사선, 브 라 우 저 에 영향 을 미 칠 수 있 는 모든 내용 을 처리 하고 웹 사용 가능 한 문자 로 변환 할 수 있 습 니 다. (예 를 들 어 빈 칸 은% 20 으로 변 환 됩 니 다. 브 라 우 저 는 빈 칸 으로 처리 하지 않 고 변경 하지 않 고 서버 에 직접 전달 합 니 다)이후 서버 는 전송 후의 본래 모습 으로 다시 변환 합 니 다.
이 방법 은 두 가지 단점 이 있 습 니 다. GET 를 사용 하여 큰 데 이 터 를 보 내 달라 고 요청 할 때 URL 문자열 의 길이 가 제한 되 어 있 습 니 다.이 제한 은 매우 광범 위 하지만 대상 의 JSON 문자열 은 생각 보다 길 이 를 나 타 낼 수 있 습 니 다. 특히 매우 복잡 한 대상 을 사용 할 때 더욱 그렇습니다.네트워크 를 넘 어 모든 데 이 터 를 텍스트 로 보 낼 때 데 이 터 를 보 내 는 데 직면 하 는 불안정 성 은 처리 능력 을 초과 합 니 다.즉, 이상 은 GET 가 요청 한 두 가지 제한 이지 JSON 데이터 와 관련 된 두 가지 가 아니다.사용자 이름과 성 이외 의 더 많은 내용 을 보 내 려 면 폼 에서 선택 할 때 주의 가 필요 할 수 있 습 니 다.기밀 이나 긴 내용 을 처리 하려 면 POST 요청 을 사용 할 수 있다.
- POST 를 이용 해 JSON 데이터 전송 요청
POST 를 사용 하여 JSON 데 이 터 를 서버 에 전송 하기 로 결 정 했 을 때 코드 를 대량으로 변경 할 필요 가 없습니다. 다음 과 같 습 니 다.
var url = "organizePeople.php?timeStamp=" + new Date().getTime(); request.open("POST", url, true); request.onreadystatechange = updatePage; request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.send(people.toJSONString());
GET 대신 POST 를 사용 하여 열 면 Content - Type 헤드 는 서버 가 어떤 데 이 터 를 얻 을 수 있 는 지 알 수 있 도록 설정 되 어 있 습 니 다.이러한 상황 에서 application / x - ww - form - urlencoded 는 서버 에 현재 보 내 는 텍스트 가 일반적인 HTML 폼 에서 얻 은 것 처럼 보 여 줍 니 다.또 다른 간단 한 힌트 는 URL 의 끝 에 시간 이 추가 되 었 다 는 것 이다.이 는 요청 이 처음 보 낸 후 캐 시 되 지 않 고 호출 될 때마다 다시 만 들 고 다시 보 내 는 것 을 확보 합 니 다.이 URL 은 시간 스탬프 에 따라 조금 다 를 수 있 습 니 다.이 기술 은 스 크 립 트 의 POST 를 확보 하 는 데 자주 사용 되 며, 매번 실제 적 으로 새로운 요청 이 생 성 되 며, 웹 서버 는 서버 에서 응답 하 는 캐 시 를 시도 하지 않 습 니 다.
* JSON 이 JSON 을 처리 하 는 두 가지 절 차 를 서버 에서 설명 합 니 다. 서버 엔 드 프로그램 을 작성 하 는 데 사용 되 는 언어 에 대해 해당 하 는 JSON 해상도 기 / 도구 상자 / 도움말 API 를 찾 습 니 다.JSON 해상도 기 / 도구 상자 / 도움말 기 API 를 사용 하여 클 라 이언 트 로부터 요청 데 이 터 를 얻 고 데 이 터 를 스 크 립 트 가 이해 할 수 있 는 것 으로 변환 합 니 다.
JSON 해상도 나 도구 상 자 를 찾 는 가장 좋 은 자원 은 JSON 사이트 입 니 다.여기 서 는 이 포맷 자체 의 모든 면 을 알 수 있 는 것 외 에 도 각종 링크 를 통 해 JSON 의 다양한 도구 와 해석 기 를 찾 을 수 있 으 며, ASP 부터 Erlang, Pike, Ruby 까지 다양 하 다.스 크 립 트 를 작성 하 는 데 사용 되 는 언어 에 맞 는 도구 상 자 를 다운로드 하면 됩 니 다.서버 쪽 스 크 립 트 와 프로그램 이 이 도구 상 자 를 사용 할 수 있 도록 상황 에 따라 선택, 확장 또는 설치 할 수 있 습 니 다 (서버 쪽 에서 C \ #, PHP 또는 Lisp 를 사용 하면 가 변성 이 더 큽 니 다).

좋은 웹페이지 즐겨찾기