MSXML은 데이터 패킷에서 요청 개체로의 변환 및 전송 작업을 완료할 수 있는 Microsoft.XMLHTTP 개체를 제공합니다.
XMLHTTP 개체를 만드는 문은 다음과 같습니다.
Set objXML = CreateObject("Msxml2.XMLHTTP") 또는
objXML = CreateObject("Microsoft.XMLHTTP") 설정
' 또는 XMLHTTP 버전 3.0의 경우 다음을 사용합니다.
' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
개체가 생성된 후 Open 메서드를 호출하여 Request 개체를 초기화합니다. 구문 형식은
Poster.open http-method, url, async, userID, Password입니다.
Open 메소드에는 5개의 매개변수가 포함되어 있으며 처음 3개는 필수이고 마지막 2개는 선택사항입니다(서버에서 인증이 필요할 때 제공됨). 매개변수의 의미는 다음과 같습니다.
http-method: GET 또는 POST와 같은 HTTP 통신 방법
url: XML 데이터를 수신하는 서버의 URL 주소입니다. 일반적으로 ASP 또는 CGI 프로그램 async는 요청이 비동기인지 여부를 나타내는 부울 플래그인 URL에 지정됩니다
. 비동기 통신 모드(true)인 경우 클라이언트는 서버의 응답을 기다리지 않고, 동기 모드(false)인 경우 클라이언트는 다른 작업을 수행하기 전에 서버가 메시지를 반환할 때까지 기다려야 합니다
. 서버 인증에 사용되는
비밀번호 서버 인증에 사용되는 사용자 비밀번호
XMLHTTP 객체의 Send 메소드는
Open 메소드를 사용하여 Request 객체를
초기화한 다음 Send 메소드를 호출하여 XML 데이터를 보냅니다
.
Send 메소드의 매개변수 유형은 문자열, DOM 또는 임의의 데이터 스트림일 수 있는 Variant입니다. 데이터를 보내는 방법에는 동기식과 비동기식의 두 가지가 있습니다. 비동기 모드에서는 데이터 패킷이 전송되면 전송 프로세스가 종료되고 클라이언트는 다른 작업을 수행합니다. 동기 모드에서는 클라이언트가 전송 프로세스를 종료하기 전에 서버가 확인 메시지를 반환할 때까지 기다립니다.
XMLHTTP 객체의 ReadyState 속성은 요청을 처리하는 서버의 진행 상황을 반영할 수 있습니다. 클라이언트 프로그램은 이 상태 정보를 기반으로 해당 이벤트 처리 방법을 설정할 수 있습니다. 속성 값과 그 의미는 다음 표에 나와 있습니다.
값 설명
0 Response 객체가 생성되었지만 XML 문서 업로드 프로세스가 아직 종료되지 않았습니다.
1 XML 문서가 로드되었습니다.
2 XML 문서가 로드되어 처리 중입니다.
3 XML 문서의 일부가 구문 분석되었습니다.
4 문서가 구문 분석되었으며 클라이언트는 반환 메시지를 수락할 수 있습니다.
클라이언트
는 반환 메시지를 받은 후 간단한 처리를 수행하여 기본적으로 C/S 간의 상호 작용 주기를 완료합니다. 클라이언트는 XMLHTTP 개체의 속성을 통해 응답을 받습니다.
● responseTxt: 반환 메시지를 텍스트 문자열로 처리합니다.
●responseXML
: 서버 응답 메시지에 XML 데이터가 포함될 때 사용되는 XML 문서로 처리합니다.반환 메시지를
XML 문서로
처리 반환된 메시지는 스트림 객체로 처리됩니다------다음은 매우 간단한 JAVASCRIPT 함수 SEND(STR,URL)입니다------------ --
XMLDOM 및 XMLHTTP 객체가 사용됩니다. 이 기술을 사용하면 완전한 JS 제어가 가능하고 편리하며 RDS나 원격보다 훨씬 좋습니다. (전제 조건: 서버와 클라이언트 모두 IE5 이상이 설치되어 있어야 합니다.) -내가 게시한 온라인 정보 새로 고침 이 기능도 이 기술을 사용합니다. 관심 있는 친구들은 살펴보세요.
기능 Send(Str,URL)
//STR 매개변수는 전달된 XML 데이터입니다. 다른 텍스트 데이터를 전달할 수도 있습니다.
//그러나 이 함수는 서버에서 처리되어 XML 데이터로 반환되어야 합니다. 수정할 수도 있습니다.
//URL 매개변수는 처리하려는 데이터의 ASP 파일 주소를 나타냅니다.
{
var Http = new ActiveXObject("Microsoft.XMLHTTP") //XMLHTTP 개체 만들기 var Dom = new ActiveXObject("Microsoft.XMLDOM") //XMLDOM 개체 만들기 Http.open("POST",URL,false)
//첫 번째 파라미터는 "POST" 방식으로 데이터를 전송한다는 의미이며, 최대 4MB까지 가능하며, "GET"으로 변경 가능합니다.
//두 번째 매개변수는 처리를 위해 데이터가 전송되는 파일을 의미합니다. //세 번째 매개변수는 동기 또는 비동기 모드를 의미합니다. TRUE는 비동기식을 의미하고, FALSE는 동기식을 의미합니다. Http.send(Str) //데이터 전송 시작.... .. .......삑 하는 소리..
Dom.async=false //동기적으로 데이터를 가져오도록 설정 Dom.loadXML(Http.responseText)
//서버측 처리 후 반환된 데이터를 가져오기 시작합니다. 여기서 설정한 설정은 XML 데이터여야 합니다. 그렇지 않으면 오류가 발생합니다.
//반환된 데이터가 바이너리 또는 레코드세트 데이터가 되도록 직접 수정할 수도 있습니다........................ ..
if(Dom.parseError.errorCode != 0) //데이터를 가져오는 중 오류가 발생하는지 확인{
삭제(Http)
삭제(돔)
반환(거짓)
}
또 다른
{
var 뒤로 = Dom.documentElement.childNodes.item(0).text
//반환된 XML 데이터를 가져옵니다. 여기에서는 핸들러가 XML 데이터의 한 행(노드 한 개)만 반환한다고 가정합니다.
삭제(Http)
삭제(돔)
return(Back) //데이터를 반환하는 함수........End}
}
VAR CAT = Send("<사용자 정보><이름>Xie Meng</Name></사용자 정보>"," HTTP://WWW.CHINAASP.COM/VIVA.ASP ") //함수 실행
IF(CAT == 거짓)
{
ALERT("죄송합니다. 핸들러가 FALSE를 반환했습니다. 데이터 처리에 실패했습니다...")
}
또 다른
{
IF(EVAL(CAT))
{
ALERT("확인. 데이터가 성공적으로 전송되었습니다. 처리가 완료되었습니다!!!!!!")
}
또 다른
{
ALERT("죄송합니다. 핸들러가 FALSE를 반환했습니다. 데이터 처리에 실패했습니다...")
}
}
===============================VIVA.ASP=============== = =============
오류 발생 시 다음 재개
딤보보
딤모모
BOBO 설정 = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
BOBO.ASYNC = 거짓
BOBO.로드 요청
BOBO.PARSEERROR.ERRORCODE <> 0이면
RESPONSE.WRITE("<프로그램 처리 결과><최종 결과>FALSE</최종 결과></프로그램 처리 결과>")
또 다른
MOMO 설정 = BOBO.DOCUMENTELEMENT
IF MOMO.CHILDNODES.ITEM(0).TEXT = "시에 멩" THEN
RESPONSE.WRITE("<프로그램 처리 결과><최종 결과>TRUE</최종 결과></프로그램 처리 결과>")
또 다른
RESPONSE.WRITE("<프로그램 처리 결과><최종 결과>FALSE</최종 결과></프로그램 처리 결과>")
종료 IF
종료 IF
보보 설정 = 아무것도 아님