هل تساءلت يومًا كيف يمكن لتطبيقات الويب التواصل مع الخوادم وتبادل البيانات دون إعادة تحميل الصفحة؟ الجواب هو XMLHttpRequest، وهي تقنية قوية ومتعددة الاستخدامات تمكّن مطوري الويب من إنشاء تجارب ويب ديناميكية وتفاعلية. في هذه المدونة، سأشرح ما هي XMLHttpRequest، كيف تعمل، وكيف يمكنك استخدامها مع Apidog، وهو أداة تساعدك في تصميم، اختبار، ومراقبة واجهات برمجة التطبيقات API الخاصة بك.
ما هي XMLHttpRequest؟
XMLHttpRequest، أو XHR اختصارًا، هو كائن يسمح لمتصفحات الويب بإرسال واستقبال طلبات HTTP واستجاباتها بشكل غير متزامن. هذا يعني أنه يمكنك استخدام XHR لطلب بيانات من خادم، مثل JSON، XML، HTML، أو نص عادي، وتحديث جزء من صفحة الويب الخاصة بك دون تحديث الصفحة بالكامل. يجعل هذا تطبيق الويب الخاص بك أسرع، وأكثر سلاسة، وصديقًا للمستخدم.
تم تصميم XHR في الأصل للتعامل مع بيانات XML، ومن هنا جاء اسمه، ولكنه يمكنه أيضًا التعامل مع أنواع أخرى من البيانات، مثل JSON، HTML، أو نص عادي. XHR مدعوم على نطاق واسع من قبل المتصفحات الحديثة، مثل Chrome وFirefox وSafari وEdge، وهو متوافق مع معايير الويب المختلفة، مثل HTML وCSS وJavaScript وDOM.
كيف تعمل XMLHttpRequest؟
لاستخدام XHR، تحتاج إلى إنشاء مثيل من كائن XMLHttpRequest، ثم استخدام طرقه وخصائصه لتكوين وتنفيذ طلب HTTP والاستجابة. إليك الخطوات الأساسية لاستخدام XHR:
- إنشاء مثيل من كائن XMLHttpRequest باستخدام
new
، مثلvar xhr = new XMLHttpRequest();
- استخدام طريقة
open()
لتحديد طريقة HTTP، عنوان URL، وما إذا كان الطلب غير متزامن أم لا، مثلxhr.open("GET", "https://example.com/api/data", true);
- استخدام طريقة
send()
لإرسال الطلب إلى الخادم، مع إمكانية تضمين بعض البيانات، مثلxhr.send();
أوxhr.send(data);
- استخدام خاصية
onreadystatechange
لتعيين دالة سيتم تنفيذها عندما يتغير حالة الطلب، مثلxhr.onreadystatechange = function() {...};
- استخدام خاصية
readyState
للتحقق من حالة الطلب، مثلif (xhr.readyState == 4) {...};
- استخدام خاصية
status
للتحقق من رمز الحالة HTTP للاستجابة، مثلif (xhr.status == 200) {...};
- استخدام خاصية
responseText
أوresponseXML
للوصول إلى البيانات التي أرسلها الخادم، مثلvar data = xhr.responseText;
أوvar data = xhr.responseXML;
- استخدام طرق
setRequestHeader()
وgetResponseHeader()
للتلاعب برؤوس HTTP للطلب والاستجابة، مثلxhr.setRequestHeader("Content-Type", "application/json");
أوvar contentType = xhr.getResponseHeader("Content-Type");

كيف تستخدم XMLHttpRequest مع Apidog؟
Apidog هي منصة سحابية تساعدك في إنشاء وتوثيق واختبار ومراقبة واجهات برمجة التطبيقات API الخاصة بك. مع Apidog، يمكنك:
- تصميم واجهة API الخاصة بك باستخدام واجهة رسومية أو محرر YAML
- توليد توثيق تفاعلي لواجهة API الخاصة بك يمكنك مشاركته مع عملائك أو مطوريك
- اختبار نقاط نهاية واجهة API الخاصة بك باستخدام عميل HTTP مدمج أو حالات اختبار آلية
- مراقبة أداء واجهة API الخاصة بك، وتوافرها، والأخطاء باستخدام لوحات المعلومات والتنبيهات
- تأمين واجهة API الخاصة بك باستخدام ميزات المصادقة، والتفويض، والتشفير، وتحديد معدلات الاستخدام
يدعم Apidog معايير وأشكال واجهات برمجة التطبيقات المختلفة، مثل OpenAPI وSwagger وJSON وXML وGraphQL.

إذا كنت ترغب في استخدام XHR للتواصل مع واجهة API الخاصة بك، يمكنك استخدام Apidog لتصميم، اختبار، ومراقبة واجهة API الخاصة بك بسهولة وثقة.
- توليد مقتطفات كود لـ XHR أو لغات وأطر عمل أخرى

- اختبار نقاط نهاية واجهة API الخاصة بك باستخدام عميل HTTP مدمج أو حالات اختبار آلية، ورؤية تفاصيل الطلب والاستجابة، مثل الرؤوس، والجسم، والحالة، والوقت


الخاتمة
XMLHttpRequest هي تقنية قوية ومتعددة الاستخدامات تمكن مطوري الويب من إنشاء تجارب ويب ديناميكية وتفاعلية. يمكنك استخدام XHR لإرسال واستقبال طلبات واستجابات HTTP بشكل غير متزامن، وتحديث جزء من صفحة الويب الخاصة بك دون تحديث الصفحة بالكامل. يمكنك أيضًا استخدام XHR للتعامل مع أنواع مختلفة من البيانات، مثل JSON وXML وHTML أو نص عادي.
إذا كنت ترغب في استخدام XHR للتواصل مع واجهة API الخاصة بك، يمكنك استخدام Apidog لتصميم، اختبار، ومراقبة واجهة API الخاصة بك بسهولة وثقة. يساعدك Apidog في إنشاء وتوثيق واختبار ومراقبة واجهة API الخاصة بك مع مراعاة الأمن. يمكنك استخدام Apidog لتطبيق ميزات المصادقة، والتفويض، والتشفير، وتحديد المعدلات لواجهة API الخاصة بك. يمكنك أيضًا استخدام Apidog لتكامل واجهة API الخاصة بك مع أدواتك الحالية وسير العمل. Apidog هي أداة قوية ومتعددة الاستخدامات يمكن أن تساعدك في إنشاء وصيانة واجهات برمجة التطبيقات الآمنة والموثوقة.