MSXML จัดเตรียมออบเจ็กต์ Microsoft.XMLHTTP ซึ่งสามารถดำเนินการแปลงและส่งงานจากแพ็กเก็ตข้อมูลไปยังออบเจ็กต์คำขอได้
คำสั่งในการสร้างวัตถุ XMLHTTP มีดังนี้:
ตั้ง 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, รหัสผ่าน
วิธีการเปิดประกอบด้วยพารามิเตอร์ 5 ตัว โดยจำเป็นต้องใช้สามตัวแรก ส่วนสองตัวสุดท้ายเป็นทางเลือก (มีให้เมื่อเซิร์ฟเวอร์ต้องการการรับรองความถูกต้อง) ความหมายของพารามิเตอร์มีดังนี้:
http-method: วิธีการสื่อสาร HTTP เช่น GET หรือ POST
url: ที่อยู่ URL ของเซิร์ฟเวอร์ที่รับข้อมูล XML โดยปกติแล้วโปรแกรม ASP หรือ CGI async จะถูกระบุใน URL
: ธงบูลีนที่ระบุว่าคำขอเป็นแบบอะซิงโครนัสหรือไม่ หากเป็นโหมดการสื่อสารแบบอะซิงโครนัส (จริง) ไคลเอนต์จะไม่รอการตอบสนองของเซิร์ฟเวอร์ หากเป็นโหมดซิงโครนัส (เท็จ) ไคลเอนต์ต้องรอจนกว่าเซิร์ฟเวอร์จะส่งคืนข้อความก่อนดำเนินการ
ID ผู้ใช้ ID ผู้ใช้
อื่น ๆใช้สำหรับ
รหัสผ่านการตรวจสอบความถูกต้องของเซิร์ฟเวอร์ รหัสผ่านผู้ใช้ที่ใช้สำหรับการตรวจสอบความถูกต้องของเซิร์ฟเวอร์
วิธีการส่งของวัตถุ XMLHTTP
ใช้วิธีการเปิดเพื่อเริ่มต้นวัตถุคำขอแล้วเรียกวิธีการส่งเพื่อส่งข้อมูล XML:
poster.send XML-
data ประเภทพารามิเตอร์ของวิธีการส่งคือ Variant ซึ่งอาจเป็นแบบสตริงหรือ DOM มีสองวิธีในการส่งข้อมูล: ซิงโครนัสและอะซิงโครนัส ในโหมดอะซิงโครนัส เมื่อแพ็กเก็ตข้อมูลถูกส่ง กระบวนการส่งจะสิ้นสุด และไคลเอนต์ดำเนินการอื่น ๆ ในโหมดซิงโครนัส ไคลเอนต์จะรอจนกว่าเซิร์ฟเวอร์จะส่งข้อความยืนยันกลับก่อนที่จะสิ้นสุดกระบวนการส่ง
คุณลักษณะ readyState ในวัตถุ XMLHTTP สามารถสะท้อนถึงความคืบหน้าของเซิร์ฟเวอร์ในการประมวลผลคำขอ โปรแกรมไคลเอนต์สามารถตั้งค่าวิธีการประมวลผลเหตุการณ์ที่เกี่ยวข้องตามข้อมูลสถานะนี้ ค่าแอตทริบิวต์และความหมายแสดงอยู่ในตารางต่อไปนี้:
คำอธิบายค่า
0 สร้างออบเจ็กต์การตอบสนองแล้ว แต่กระบวนการอัปโหลดเอกสาร XML ยังไม่สิ้นสุด
1 โหลดเอกสาร XML แล้ว
2 โหลดเอกสาร XML แล้วและกำลังประมวลผล
3 แยกวิเคราะห์เอกสาร XML บางส่วนแล้ว
4 เอกสารได้รับการแยกวิเคราะห์แล้วและไคลเอ็นต์สามารถยอมรับข้อความส่งคืนได้
ไคลเอ็นต์จะประมวลผลข้อมูลตอบกลับ
หลังจากได้รับข้อความส่งคืนแล้ว ไคลเอ็นต์จะดำเนินการประมวลผลอย่างง่าย ซึ่งโดยพื้นฐานแล้วจะเสร็จสิ้นวงจรการโต้ตอบระหว่าง C/S ไคลเอนต์ได้รับการตอบกลับผ่านแอตทริบิวต์ของออบเจ็กต์ XMLHTTP:
● responseTxt: ถือว่าข้อความส่งคืนเป็นสตริงข้อความ
● responseXML: ถือว่าข้อความส่งคืนเป็นเอกสาร XML ใช้เมื่อข้อความตอบกลับของเซิร์ฟเวอร์มีข้อมูล XML; ถือว่าข้อความที่ส่งคืน
เป็นเอกสาร XML
ข้อความที่ส่งคืนจะถือเป็นวัตถุสตรีม------ นี่คือฟังก์ชัน JAVASCRIPT ที่เรียบง่ายมากต่อไปนี้ ส่ง (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" ได้เพียง 256KB
// พารามิเตอร์ที่สองหมายถึงไฟล์ที่ข้อมูลถูกส่งไปยังการประมวลผล // พารามิเตอร์ที่สามหมายถึงโหมดซิงโครนัสหรืออะซิงโครนัส TRUE หมายถึงอะซิงโครนัส FALSE หมายถึง Http.send (Str) // เริ่มส่งข้อมูล.... .. .......บี๊บ..
Dom.async=false //ตั้งค่าเพื่อรับข้อมูลพร้อมกัน Dom.loadXML(Http.responseText)
//เริ่มรับข้อมูลที่ส่งคืนหลังจากการประมวลผลฝั่งเซิร์ฟเวอร์ การตั้งค่าที่ฉันตั้งไว้ที่นี่ต้องเป็นข้อมูล XML มิฉะนั้นจะเกิดข้อผิดพลาด
//คุณสามารถแก้ไขด้วยตัวเองเพื่อให้ข้อมูลที่ส่งคืนเป็นข้อมูลไบนารี่หรือชุดระเบียน............................. ..
if(Dom.parseError.errorCode != 0) //ตรวจสอบว่ามีข้อผิดพลาดเกิดขึ้นขณะรับข้อมูลหรือไม่{
ลบ(Http)
ลบ(โดม)
กลับ(เท็จ)
-
อื่น
-
var Back = Dom.documentElement.childNodes.item(0).ข้อความ
// รับข้อมูล XML ที่ส่งคืน ฉันถือว่าที่นี่ตัวจัดการส่งคืนข้อมูล XML เพียงแถวเดียว (หนึ่งโหนด)
ลบ(Http)
ลบ(โดม)
return(Back) //ฟังก์ชันส่งคืนข้อมูล............สิ้นสุด}
}
VAR CAT = Send("<ข้อมูลผู้ใช้><ชื่อ>Xie Meng</ชื่อ></ข้อมูลผู้ใช้>", HTTP://WWW.CHINAASP.COM/VIVA.ASP ") //ดำเนินการฟังก์ชัน
ถ้า(CAT == เท็จ)
-
ALERT("ขออภัย ตัวจัดการส่งคืน FALSE การประมวลผลข้อมูลล้มเหลว...")
-
อื่น
-
ถ้า(ประเมินผล(CAT))
-
ALERT("ตกลง ข้อมูลถูกส่งเรียบร้อยแล้ว และการประมวลผลเสร็จสิ้น !!!!")
-
อื่น
-
ALERT("ขออภัย ตัวจัดการส่งคืน FALSE การประมวลผลข้อมูลล้มเหลว...")
-
}
===============================VIVA.ASP=============== = =============
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
ดิม โบโบ้
ติ่มโมโม่
SET BOBO = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
BOBO.ASYNC = เท็จ
คำขอ BOBO.LOAD
ถ้า BOBO.PARSEERROR.ERRORCODE <> 0 แล้ว
RESPONSE.WRITE("<ผลการประมวลผลของโปรแกรม><ผลลัพธ์สุดท้าย>FALSE</ผลลัพธ์สุดท้าย></ผลการประมวลผลของโปรแกรม>")
อื่น
SET MOMO = BOBO.เอกสารประกอบ
ถ้า MOMO.CHILDNODES.ITEM(0).TEXT = "เซี่ยเหมิง" แล้ว
RESPONSE.WRITE("<ผลการประมวลผลของโปรแกรม><ผลลัพธ์สุดท้าย>TRUE</ผลลัพธ์สุดท้าย></ผลการประมวลผลของโปรแกรม>")
อื่น
RESPONSE.WRITE("<ผลการประมวลผลของโปรแกรม><ผลลัพธ์สุดท้าย>FALSE</ผลลัพธ์สุดท้าย></ผลการประมวลผลของโปรแกรม>")
สิ้นสุด ถ้า
สิ้นสุด ถ้า
ชุด BOBO = ไม่มีอะไร