يوفر MSXML كائن Microsoft.XMLHTTP، الذي يمكنه إكمال التحويل وإرسال المهام من حزم البيانات إلى كائنات الطلب.
عبارة إنشاء كائن XMLHTTP هي كما يلي:
Set objXML = CreateObject("Msxml2.XMLHTTP") أو
تعيين objXML = CreateObject("Microsoft.XMLHTTP")
أو، بالنسبة للإصدار 3.0 من XMLHTTP، استخدم:
' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
بعد إنشاء الكائن، قم باستدعاء الأسلوب Open لتهيئة كائن الطلب. تنسيق بناء الجملة هو:
Poster.open http-method، url، async، userID، كلمة المرور.
تحتوي الطريقة المفتوحة على 5 معلمات، الثلاثة الأولى مطلوبة، والأخيرتان اختياريتان (يتم توفيرهما عندما يتطلب الخادم المصادقة). معنى المعلمات كما يلي:
طريقة http: طريقة اتصال HTTP، مثل GET أو POST
url: عنوان URL للخادم الذي يتلقى بيانات XML. عادةً ما يتم تحديد برنامج ASP أو CGI غير المتزامن في عنوان URL
: علامة منطقية تشير إلى ما إذا كان الطلب غير متزامن. إذا كان وضع اتصال غير متزامن (صحيح)، فلا ينتظر العميل استجابة الخادم؛ وإذا كان وضعًا متزامنًا (خطأ)، فيجب على العميل الانتظار حتى يقوم الخادم بإرجاع رسالة قبل إجراء عمليات أخرى
لمعرف المستخدم، تستخدم
لكلمة مرور مصادقة الخادم كلمة مرور المستخدم، المستخدمة لمصادقة الخادم.
تستخدمطريقة الإرسال لكائن XMLHTTP
الطريقة المفتوحة لتهيئة كائن الطلب، ثم تستدعي طريقة الإرسال لإرسال بيانات XML:
Poster.send
XML-data
نوع المعلمة لطريقة الإرسال هو متغير، والذي يمكن أن يكون سلسلة أو شجرة DOM أو دفق بيانات عشوائي. هناك طريقتان لإرسال البيانات: متزامن وغير متزامن. في الوضع غير المتزامن، بمجرد إرسال حزمة البيانات، تنتهي عملية الإرسال، ويقوم العميل بإجراء عمليات أخرى؛ في الوضع المتزامن، ينتظر العميل حتى يقوم الخادم بإرجاع رسالة تأكيد قبل إنهاء عملية الإرسال.
يمكن أن تعكس سمة ReadyState في كائن XMLHTTP تقدم الخادم في معالجة الطلب. يمكن لبرنامج العميل تعيين طريقة معالجة الحدث المقابلة بناءً على معلومات الحالة هذه. تظهر قيم السمات ومعانيها في الجدول التالي:
وصف القيمة
0 تم إنشاء كائن الاستجابة، لكن عملية تحميل مستند 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 أو أعلى مثبتًا). -تحديث المعلومات عبر الإنترنت التي نشرتها تستخدم الوظيفة أيضًا هذه التقنية ويمكن للأصدقاء المهتمين إلقاء نظرة عليها..
وظيفة إرسال (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"، ويمكن أن يصل حجمها إلى 4 ميجابايت، أو يمكن تغييرها إلى "GET".
// المعلمة الثانية تعني الملف الذي يتم إرسال البيانات إليه للمعالجة // المعلمة الثالثة تعني الوضع المتزامن أو غير المتزامن. TRUE تعني غير متزامن، FALSE تعني متزامن Http.send(Str) // ابدأ في إرسال البيانات.... .. .......زمارة..
Dom.async=false //تعيين للحصول على البيانات بشكل متزامن Dom.loadXML(Http.responseText)
// ابدأ في الحصول على البيانات التي تم إرجاعها بعد المعالجة من جانب الخادم. يجب أن تكون الإعدادات التي قمت بتعيينها هنا هي بيانات XML، وإلا سيحدث خطأ.
// يمكنك أيضًا تعديلها بنفسك بحيث تكون البيانات التي تم إرجاعها عبارة عن بيانات ثنائية أو بيانات مجموعة سجلات .............................. ..
if(Dom.parseError.errorCode != 0) //تحقق مما إذا كان هناك خطأ أثناء الحصول على البيانات{
حذف (المتشعب)
حذف (دوم)
العودة (خطأ)
}
آخر
{
var Back = Dom.documentElement.childNodes.item(0).text
// احصل على بيانات XML التي تم إرجاعها وأفترض هنا أن المعالج يقوم بإرجاع صف واحد فقط من بيانات XML (عقدة واحدة).
حذف (المتشعب)
حذف (دوم)
العودة (العودة) // الدالة ترجع البيانات.............النهاية}
}
VAR CAT = Send("<معلومات المستخدم><الاسم>Xie Meng</Name></معلومات المستخدم>"، " HTTP://WWW.CHINAASP.COM/VIVA.ASP ") // تنفيذ الوظيفة
إذا (CAT == خطأ)
{
ALERT("عذرًا. أرجع المعالج خطأ. فشلت معالجة البيانات...")
}
آخر
{
إذا (EVAL (CAT))
{
تنبيه("حسنًا. تم إرسال البيانات بنجاح. واكتملت المعالجة!!!!!!")
}
آخر
{
ALERT("عذرًا. أرجع المعالج خطأ. فشلت معالجة البيانات...")
}
}
================================================================================================ = ============
عند حدوث خطأ في الاستئناف التالي
ديم بوبو
خافت مومو
تعيين BOBO = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
BOBO.ASYNC = خطأ
طلب BOBO.LOAD
إذا كان BOBO.PARSERROR.ERRORCODE <> 0 ثم
RESPONSE.WRITE("<نتيجة معالجة البرنامج><النتيجة النهائية>FALSE</النتيجة النهائية></نتيجة معالجة البرنامج>")
آخر
تعيين MOMO = BOBO.DOCUMENTELEMENT
إذا كان MOMO.CHILDNODES.ITEM(0).TEXT = "Xie Meng" إذن
RESPONSE.WRITE("<نتيجة معالجة البرنامج><النتيجة النهائية>TRUE</النتيجة النهائية></نتيجة معالجة البرنامج>")
آخر
RESPONSE.WRITE("<نتيجة معالجة البرنامج><النتيجة النهائية>FALSE</النتيجة النهائية></نتيجة معالجة البرنامج>")
نهاية إذا
نهاية إذا
تعيين بوبو = لا شيء