http://skyunoe.blog.me/20108801554
Ajax를 구현하는 핵심 JavaScript 객체는 XMLHttpRequest이다.
Ajax가 추구하는 새롭고 놀라운 기능을 실제로 구현하기 위해서는 이 객체에 대해 완전히 익숙해 져야 한다.
아래는 XMLHttpRequest객체가 지원하는 Method 및 Properties들을 정리한 것이다.
Method
open()
: 새로운 요청을 서버에 설정함.send()
: 요청을 서버에 전송함.abort()
: 현 요청에서 벗어남.readyState
: 현 HTML 준비상태를 제공함.responseText
: 요청에 응답하기 위해 서버에서 재전송하는 텍스트.
Properties
- onreadystatechange : XMLHttpRequest객체의 상태가 변할 때 실행할 핸들러를 지정 한다.
- readyState : XMLHttpRequest객체의 생태가 변할 때 각 상태값을 반환한다.
- 0: (
open()
을 호출하기 전에는) 요청이 초기화 되지 않는다. - 1: (
send()
를 호출하기 전에는) 요청은 설정은 되지만 보내지지 않는다. - 2: 요청이 보내지고 처리 중에 있다. (이 시점에서 응답에서 콘텐트 헤더를 얻을 수 있다.)
- 3: 요청이 처리 중에 있다. 부분적인 데이터를 응답에서 사용할 수 있지만 서버는 이 응답으로는 종료되지 않는다.
- 4: 응답이 완료된다. 서버의 응답을 받고 이를 사용한다.
- responseText : HTTP 요청결과를 문자열 형태로 반환한다.
- responseXML: HTTP 요청결과를 XMLDocument 오브젝트로 반환한다.
- responseBody
- status: HTTP 응답코드를 반환한다. 성공일 경우 200
- statusText: HTTP 응답문자열을 반환한다. 성공인 경우 OK
사용법
1. 요청생성
function getXMLHttpRequest() {
|
2. 요청
function ajaxRequest() { |
// req 객체반환 |
req = getXMLHttpRequest(); |
// 응답이 완료되면 자동으로 실행되도록 JavaScript 콜백 함수를 정의 |
var handlerFunction = ""; |
req.onreadystatechange = handlerFunction; |
// 요청처리 |
req.open("POST", "test.php", true); |
// 헤더 설정 |
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); |
// POST일 경우 send에 아래와 같이 변수를 입력하고 GET일 경우 null입력 |
req.send("변수=값"); |
}
|
3. CallBack (요청에 대한 응답 처리)
function ajaxResponse() { |
// only if req shows "loaded" |
if (req.readyState == 4) { |
// only if "OK" |
if (req.status == 200) { |
// do something... |
} else { |
alert("There was a problem retrieving the XML data:\n" + req.statusText); |
} |
} |
}
[출처] [Ajax] XMLHttpRequest객체|작성자 깡통 |
'HTML/JS/CSS' 카테고리의 다른 글
HTML5 실전 가이드. (PDF문서) (0) | 2010.09.27 |
---|---|
HTML5 - 아웃라인을 의식한 마크업 (0) | 2010.08.12 |
HTML5 - 섹션루트 (0) | 2010.08.11 |