ajax 입문 기초 XML HttpRequest 대상 총화

XML HttpRequest 는 클 라 이언 트 가 http 서버 와 통신 하 는 프로 토 콜 을 제공 합 니 다.1:IE 생 성:httprequest = new ActiveXObject("Msxml2.XMLHTTP"); http_request = new ActiveXObject("Microsoft.XMLHTTP"); 비 IE:httprequest = new XMLHttpRequest(); 2:onreadystatechange 는 ready State 속성 이 바 뀌 었 을 때의 이벤트 처리 핸들 문법 http 을 지정 합 니 다.request .onreadystatechange = funcMyHandler; 3:ready State 는 XML HTTP 가 요청 한 현재 상태 변 수 를 되 돌려 줍 니 다.이 속성 은 읽 기 전용 입 니 다.상 태 는 길이 가 4 인 정형 으로 표 시 됩 니 다.정 의 는 다음 과 같 습 니 다.0(초기 화 되 지 않 음)대상 이 만 들 어 졌 지만 초기 화 되 지 않 았 습 니 다.(open 방법 이 호출 되 지 않 았 음)대상 이 만 들 어 졌 습 니 다.send 방법 2(데 이 터 를 보 내기)send 방법 이 호출 되 지 않 았 습 니 다.그러나 현재 상태 및 http 헤드 미 지 의 3(데이터 전송 중)은 일부 데 이 터 를 받 았 습 니 다.응답 및 http 헤드 가 완비 되 지 않 았 기 때문에 responseBody 와 responseText 를 통 해 일부 데 이 터 를 가 져 오 는 데 오류 가 발생 합 니 다.4(완료)데이터 수신 이 완료 되 었 습 니 다.이 때 responseBody 와 responseText 를 통 해 완전한 응답 데 이 터 를 얻 을 수 있 습 니 다.4:responseBody 는 특정한 형식의 서버 응답 데 이 터 를 되 돌려 줍 니 다.5:responseStream 은 Ado Stream 대상 으로 응답 편 지 를 되 돌려 줍 니 다.6:responseText 는 응답 정 보 를 문자열 로 비고 변 수 를 되 돌려 줍 니 다.이 속성 은 읽 기만 하고 응답 정 보 를 문자열 로 되 돌려 줍 니 다.XML HTTP 는 응답 정 보 를 유 니 코드 문자열 로 디 코딩 하려 고 시도 합 니 다.XML HTTP 는 기본적으로 응답 데이터 의 인 코딩 을 UTF-8 로 정 합 니 다.서버 가 되 돌아 오 는 데이터 테이프 BOM(byte-order mark)이 있 으 면 XML HTTP 는 모든 UCS-2(big or little endian)또는 UCS-4 데 이 터 를 디 코딩 할 수 있 습 니 다.서버 가 xml 문 서 를 되 돌려 준다 면 이 속성 은 xml 문서 의 인 코딩 성명 을 처리 하지 않 습 니 다.responseXML 로 처리 해 야 합 니 다.7:responseXML 은 응답 정 보 를 Xml Document 대상 으로 포맷 하고 비고 변 수 를 되 돌려 줍 니 다.이 속성 은 읽 기만 하고 응답 정 보 를 Xml Document 대상 으로 포맷 하고 되 돌려 줍 니 다.응답 데이터 가 올 바른 XML 문서 가 아니라면 이 속성 자체 가 XMLdomParseError 로 돌아 가지 않 고 처 리 된 DOMDocument 대상 을 통 해 오류 정 보 를 가 져 올 수 있 습 니 다.8:status 는 현재 요청 한 http 상태 코드 의 긴 성형 표준 http 상태 코드 를 되 돌려 줍 니 다.정 의 는 다음 과 같 습 니 다:번호 설명 100 계속 101 스 위칭 프로 토 콜 200 OK 201 만 든 202 수락 203 승인 되 지 않 은 정보 204 아니오 콘 텐 츠 205 재 설정 콘 텐 츠 206 부분 콘 텐 츠 300 다 중 선택 301 이동 영구적 으로 302 발견 303 다른 304 수정 되 지 않 은 다른 참조 305 사용 프 록 시 307 임시 리 디 렉 션 400 나 쁜 요청 401 무 단 402Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Request Entity Too Large 414 Request-URI Too Long 415 Unsupported Media Type 416 Requested Range Not Suitable 417 Expectation Failed 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout 505 HTTP Version Not Supported 비고 장 성형,이 속성 은 읽 기만 하고 현재 요청 한 http 상태 코드 를 되 돌려 줍 니 다.이 속성 은 데 이 터 를 보 내 고 받 은 후에 만 가 져 올 수 있 습 니 다.9:xmlhttprequest:statusText 구성원 statusText 는 현재 요청 한 응답 줄 상태 10:abort()방법 으로 현재 요청 을 취소 합 니 다.send 방법 이 완 료 된 후에 야 이 방법 을 호출 할 수 있 습 니 다.12:getResponseHeader 응답 정보 에서 지정 한 http 헤더 가 져 오기:xmlhttp.getResponseHeader("Server");http 헤더 의 server 열 출력:현재 웹 서버 의 버 전 및 이름 입 니 다.비 고 는 send 방법 이 성공 한 후에 야 이 방법 을 호출 할 수 있 습 니 다.서버 가 되 돌려 주 는 문서 형식 이"text/xml"이면 xmlhttp.getResponseHeader("Content-Type");문자열'text/xml'을 되 돌려 줍 니 다.getAll Response Headers 방법 으로 완전한 http 헤드 정 보 를 얻 을 수 있 습 니 다.13:open()방법 으로 새로운 http 요청 을 만 들 고 이 요청 의 방법,URL 및 검증 정보 문법 XML HttpRequest.open(strMethod,strUrl,blnAsync,strUser,strPassword)을 지정 합 니 다.파라미터 strMethod http 방법,예 를 들 어 POST,GET,PUT 및 PROFFIND.대소 문자 가 민감 하지 않다.strUrl 이 요청 한 URL 주 소 는 절대 주소 일 수도 있 고 상대 주소 일 수도 있 습 니 다.blnAsync[선택 가능]불 형 입 니 다.이 요청 이 비동기 방식 인지,기본 값 은 true 입 니 다.만약 사실 이 라면 상태 가 바 뀌 었 을 때 onreadystatechange 속성 이 지정 한 반전 함 수 를 호출 합 니 다.async 는 불 값 입 니 다.비동기 통신 방식(true)이 라면 클 라 이언 트 는 서버 의 응답 을 기다 리 지 않 습 니 다.동기 화 방식(false)이 라면 클 라 이언 트 는 서버 가 메 시 지 를 되 돌려 준 후에 야 다른 작업 을 수행 해 야 합 니 다.실제 수요 에 따라 동기 화 방식 을 지정 해 야 합 니 다.일부 페이지 에 서 는 여러 가지 요청 을 할 수 있 습 니 다.심지어 조직 적 으로 대형 대규모 강도 높 은 request 가 있 을 수 있 습 니 다.그 다음 하 나 는 이전 페이지 를 덮어 쓸 것 입 니 다.이 럴 때 동기 화 방식 을 지정 해 야 합 니 다:Flase.strUser[선택 가능]서버 가 인증 이 필요 하 다 면 사용자 이름 을 지정 합 니 다.지정 되 지 않 으 면 서버 가 인증 이 필요 할 때 인증 창 이 팝 업 됩 니 다.strPassword[선택 가능]인증 정보의 암호 부분 입 니 다.사용자 이름 이 비어 있 으 면 이 값 은 무 시 됩 니 다.이 방법 을 호출 하면 send 방법 으로 서버 에 데 이 터 를 보 낼 수 있 습 니 다.14:send()방법 은 http 서버 에 요청 을 보 내 고 응답 XML HttpRequest.send(varBody)를 받 습 니 다.인자 varBody 가 이 요청 을 통 해 보 내 려 는 데이터 입 니 다.이 방법 을 설명 하 는 동기 화 또는 비동기 방식 은 open 방법 중의 bAsync 매개 변수 에 달 려 있 습 니 다.만약 bAsync=False 라면 이 방법 은 요청 이 완료 되 거나 시간 이 초과 되 기 를 기 다 려 야 돌아 갑 니 다.만약 bAsync==True 라면 이 방법 은 즉시 돌아 갑 니 다.15:setRequestHeader 가 요청 한 http 헤드 를 단독으로 지정 합 니 다.Example:

var http_request= false;
function send_request(url)
{ /// 、 、

if (window.XMLHttpRequest) //Mozila
{
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{
http_request.overrideMimeType("text/xml");
}
}
else
if (window.ActiveXobject) //IE
{
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) { }
}
}

if (!http_request) // ,
{
alert(" XMLHttpRequest !!");
return false;
}
//
http_request.onreadystatechange = processRequest;
// <SPAN twffan="done"> URL
http_request.open("GET",url,true);
http_request.send(null);
}
//******************************************************************
function processRequest()
{
if (http_request.readyState == 4) //
{
if (http_request.status == 200) //
{
alert(http_request.responseBody);
var a = document.getElementById("hh").innerText;
if (a =="1")
{
alert(" !!");
}
}
else //
{
alert(" ");
}
}
}
// ********************************************************************
function userCheck()
{
var f = document.Form1;
var userName = f.username.value;
if (userName == "")
{
alert(" !!");
f.username.focus();
return false;
}
else
{
send_request("alert.aspx?username="+userName)
}
}

좋은 웹페이지 즐겨찾기