Latest web development tutorials

أجاكس - إرسال طلب إلى خادم

كائن مدعوم لتبادل البيانات مع الخادم.


يرسل الطلب إلى ملقم

لتقوم بإرسال طلب إلى الخادم، ونحن نستخدم فتح كائن مدعوم في () وإرسال () الأسلوب:

xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

الطريق وصف
فتح(طريقة، رابط، المتزامن)

يحدد نوع الطلب، URL ومعالجة ما إذا كانت متزامنة من الطلبات.

  • الأسلوب:نوع الطلب؛ GET أو وظيفة
  • رابط:موقع الملف على الخادم
  • المتزامن: صحيح (غير المتزامن)أو خاطئة (متزامن)
إرسال(سلسلة)

يرسل الطلب إلى الملقم.

  • سلسلة:فقط للطلبات POST


GET أو وظيفة؟

مقارنة مع وظيفة، الحصول على أسهل وأسرع، وفي معظم الحالات يمكن استخدامها.

ومع ذلك، في الحالات التالية، يرجى استخدام طلب POST:

  • غير قادر على استخدام ملفات ذاكرة التخزين المؤقت (ملفات أو تحديث قاعدة البيانات على الخادم)
  • إرسال كميات كبيرة من البيانات (POST لا يحد من كمية البيانات) إلى ملقم
  • عند إرسال إدخال المستخدم يحتوي على أحرف غير معروفة، POST هي أكثر استقرارا وأكثر موثوقية من GET

طلب GET

طلب GET بسيط:

أمثلة

xmlhttp.open("GET","demo_get.html",true);
xmlhttp.send();

محاولة »

في المثال أعلاه، قد تحصل على نتائج مؤقتا.

لتجنب هذا الأمر، إضافة معرف فريد إلى عنوان URL:

أمثلة

xmlhttp.open("GET","demo_get.html?t=" + Math.random(),true);
xmlhttp.send();

محاولة »

إذا كنت ترغب في إرسال المعلومات من خلال طريقة GET، إضافة المعلومات إلى URL:

أمثلة

xmlhttp.open("GET","demo_get2.html?fname=Henry&lname=Ford",true);
xmlhttp.send();

محاولة »


طلب POST

طلب وظيفة بسيطة:

أمثلة

xmlhttp.open("POST","demo_post.html",true);
xmlhttp.send();

محاولة »

إذا كنت بحاجة إلى أن البيانات باعتبارها HTML شكل وظيفة، استخدام setRequestHeader () لإضافة رؤوس HTTP. ثم تحديد أنك تريد إرسال البيانات في الإرسال () الأسلوب:

أمثلة

xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

محاولة »

方法 描述
setRequestHeader(header,value)

向请求添加 HTTP 头。

  • header: 规定头的名称
  • value: 规定头的值


رابط - الملفات على الخادم

حجة فتحرابط() الأسلوب هو عنوان ملقم الملفات:

xmlhttp.open("GET","ajax_test.html",true);

الملف يمكن أن يكون أي نوع من الملفات، مثل .txt و. xml. أو ملفات البرامج النصية الخادم، مثل .ASP وفب (قبل إرجاع استجابة، لأداء المهام على الخادم).


غير المتزامن - صح أو خطأ؟

أجاكس يعني غير متزامن جافا سكريبت وإكس إم إل (غير متزامن جافا سكريبت وإكس إم إل).

إذا كنت ترغب في استخدام كائن أجاكس مدعوم، ثم، المعلمة المتزامن الذي () يجب أن يتم تعيين طريقة إلى true مفتوحة:

xmlhttp.open("GET","ajax_test.html",true);

لمطوري الويب، وإرسال طلب غير متزامن هو خطوة كبيرة إلى الأمام. في الملقم لتنفيذ العديد من المهام وقتا طويلا جدا. قبل أجاكس تحدث، مما قد يتسبب في التطبيق لتعليق أو وقف.

من خلال أجاكس، جافا سكريبت دون انتظار استجابة الخادم، ولكن:

  • تنفيذ البرامج النصية الأخرى أثناء انتظار استجابة من الملقم
  • عندما الرد على استعداد للرد على معالجة

المتزامن = صحيح

عند استخدام المتزامن = الحقيقية، يرجى أحكام ردا على الأحداث في onreadystatechange الاستعداد لأداء وظيفة:

أمثلة

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

محاولة »

سوف تتعلم المزيد عن محتوى onreadystatechange في فصل لاحق.


المتزامن = كاذبة

استخدام المتزامن = كاذبة، تعيين أسلوب مفتوح () في المعلمة الثالث إلى false:

xmlhttp.open("GET","test1.txt",false);

نحن لا نوصي باستخدام المتزامن = كاذبة، ولكن لطلب صغير، من الممكن أيضا.

تذكر، وجافا سكريبت الانتظار حتى استجابة الملقم على استعداد للمضي قدما. إذا كان الملقم مشغول أو بطيئة، أو توقف توقف التطبيق.

ملاحظة: عند استخدام المتزامن = كاذبة، رجاء لا تكتب onreadystatechange وظيفة - وضع الشفرة في الإرسال () إلى بيان:

أمثلة

xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

محاولة »