وظائف اياكس. جافا سكريبت - طلب AJAX متزامن (XMLHttpRequest)

16.04.2019
خيط يحصل

طريقة HTTP لنقل البيانات عند تنفيذ الطلب. عادةً ما يتم استخدام GET أو POST. يمكنك أيضًا استخدام طريقتي PUT وDELETE، ولكن لا يُنصح بذلك نظرًا لعدم دعمهما من قبل جميع المتصفحات.

$.ajax((//... اكتب: "POST"، //... ));

عنوان URL خيط الصفحه الحاليه

$.ajax((//... url: "/path/to/script"، //... ));

بيانات سلسلة | هدف

البيانات المرسلة مع طلب إلى الخادم. يتم تحويلها إلى سلسلة استعلام، وبشكل افتراضي، يتم تشفيرها بالضرورة في نموذج يشبه عنوان URL (المعلمة مسؤولة عن الترميز التلقائي في تنسيق URL).

يتم إلحاق السلسلة بسلسلة استعلام URL إذا تم تقديم الطلب باستخدام طريقة GET. إذا تم تنفيذ الطلب باستخدام طريقة POST، فسيتم نقل البيانات في نص الطلب.

$.ajax((//... البيانات: "value1=1&value2=2&value3=3"، //... ));

إذا كانت المعلمة المحددة عبارة عن كائن كمجموعة من أزواج property_name/value وكانت القيمة عبارة عن مصفوفة، فسيقوم jQuery بإجراء تسلسل للكائن في سلسلة من القيم المتعددة باستخدام نفس المفتاح.

(فو: ["bar1"، "bar2"])

&Foo=bar1&Foo=bar2

غير متزامن منطقية حقيقي

علامة لتنفيذ الطلبات غير المتزامنة.

$.ajax((//... غير متزامن: خطأ، //... ));

نوع البيانات خيط سلسلة تحدد اسم نوع البيانات المتوقع في استجابة الخادم. إذا لم يتم تحديد نوع البيانات، فإن jQuery نفسه يحاول تحديده، بناءً على نوع MIME لاستجابة الخادم. القيم الصالحة: xml، html، script، json، jsonp، text. (يعد ذلك ضروريًا لتحديد طريقة لمعالجة البيانات المستلمة في استجابة الطلب بواسطة وظيفة dataFilter قبل تمريرها إلى وظيفة رد الاتصال الناجحة.) مخبأ منطقية حقيقي

إشارة التخزين المؤقت للاستجابة.

الإعدادات الافتراضية هي true لأنواع البيانات النصية، وxml، وhtml، وjson. بالنسبة لأنواع بيانات البرنامج النصي وjsonp، تكون القيمة الافتراضية خاطئة.

نوع المحتوى خيط application/x-www-form-urlencoded نوع المحتوى الموجود في الطلب (عند إرسال البيانات إلى الخادم). سياق هدف سيصبح هذا الكائن هو السياق (هذا) لجميع وظائف رد الاتصال المرتبطة بطلب ajax هذا (على سبيل المثال، لوظائف النجاح أو الخطأ) $.ajax(( url: "test.html"، السياق: document.body، Success: وظيفة ()( $(this).addClass("done"); ) )); عالمي منطقية حقيقي استدعاء معالجات الأحداث العالمية قيد التشغيل مراحل مختلفةطلب ajax، على سبيل المثال، وظائف ajaxStart أو ajaxStop ifModified منطقية خطأ شنيع

إذا تم تعيينه على true، فإن الطلب يعتبر ناجحًا فقط إذا تغيرت البيانات الموجودة في الاستجابة منذ الطلب الأخير (يحدد jQuery ما إذا كان أحد المكونات الموجودة في ذاكرة التخزين المؤقت للمتصفح يطابق ما هو موجود على الخادم عن طريق التحقق رأس آخر تعديلمع تاريخ آخر تعديل للمحتوى، وفي jQuery 1.4، يتم أيضًا تحديد رأس Etag - سلسلة مع إصدار المكون). القيمة الافتراضية خاطئة، أي. لا يعتمد نجاح الطلب على العناوين أو التغييرات في الاستجابة.

اسم المستخدم خيط

اسم المستخدم الذي سيتم استخدامه لترخيص HTTP على الخادم.

كلمة المرور خيط كلمة المرور التي سيتم استخدامها للرد على طلب ترخيص HTTP على الخادم. معالجة البيانات منطقية حقيقي

يتم تحويل البيانات التي تم تمريرها إلى الخادم في المعلمة إلى سلسلة استعلام بنوع المحتوى Application/X-WWW-forms-urlencoded والمشفر. إذا لم تكن هذه المعالجة مرغوبة (عندما يلزم إرسال بيانات أخرى إلى الخادم، مثل كائن DOMDocument أو xml)، فيمكن تجاوزها عن طريق تعيين هذه المعلمة على false .

scriptCharset خيط

عند تنفيذ طلبات GET وطلبات تستهدف بيانات jsonp أو البرنامج النصي، يحدد ترميز أحرف الطلب (على سبيل المثال، UTF-8 أو CP1251). مفيد للاختلافات بين الترميزات من جانب العميل والخادم.

نفذ الوقت عدد صحيح

يضبط الحد الأقصى لوقت انتظار استجابة الخادم بالمللي ثانية. له الأسبقية على إعداد حد المهلة العالمي عبر $.AjaxSetup . إذا تم تجاوز حد المهلة، تتم مقاطعة الطلب ويتم استدعاء وظيفة المعالجة خطأ(إذا تم تثبيتها).

وصف معلمات الاسم
خطأ XHR، حالة النص، خطأ ثرون

يتم تشغيله عند فشل الطلب. يتم تمرير الدالة ثلاث وسائط:

textStatus - سلسلة تصف نوع الخطأ الذي حدث (مهلة، خطأ، غير معدل أو خطأ محللي)

errorThrown - معلمة اختيارية، كائن الاستثناء، إن وجد (يتم إرجاعه بواسطة مثيل كائن XHR)

$.ajax((//... خطأ: الوظيفة() ( تنبيه("خطأ!"); //... ));

نجاح البيانات، حالة النص، XHR

يتم تشغيله عند نجاح الطلب. يتم تمرير الدالة ثلاث وسائط:

البيانات - البيانات التي يتم إرجاعها بواسطة الخادم في الاستجابة، والتي تتم معالجتها مسبقًا بواسطة وظيفة dataFilter وفقًا لقيمة المعلمة

textStatus - سلسلة تحتوي على رمز الحالة الذي يشير إلى النجاح

XHR - مثيل لكائن XMLHttpRequest

$.ajax((//... النجاح: الوظيفة() ( تنبيه("النجاح!"), //... ));

قبل الإرسال XHR

الحرائق قبل إرسال الطلب. يتم تمرير مثيل لكائن XHR (XMLHttpRequest) باعتباره الوسيط الوحيد الخاص به. إذا أعادت الدالة خطأ، فسيتم إلغاء الطلب.

$.ajax(( //... قبل الإرسال: function() ( تنبيه("عمل قبل الإرسال!"); //... ));

مكتمل XHR، حالة النص

يتم إطلاقه في نهاية الطلب، بغض النظر عن نجاحه أو فشله (وأيضًا بعد وظائف و، إذا تم تحديدها). تأخذ الدالة وسيطتين: مثيل لكائن XHR (XMLHttpRequest) وسلسلة تشير إلى حالة النجاح أو الخطأ (وفقًا لرمز الحالة في استجابة الطلب)


مثال تفصيلي:

وظيفة testAjax(id, pid) ( $.ajax(( النوع: "POST"، البيانات: "id=" + id + "&pid=" + pid, url: "/path/to/script/test.php"، النجاح: وظيفة (بيانات) ( var obj = $.parseJSON(data)؛ // تحويل json لاستجابة الخادم if (obj.error == 0) ( تنبيه ("كان الطلب ناجحًا")؛ ) آخر ( تنبيه (obj.error ) ) )); إرجاع صحيح؛
الطلب به خطأ

PHP النصي (test.php):

مثال آخر بمخرجات استجابة مختلفة:

وظيفة testAjax(id, pid) ( $.ajax(( النوع: "POST"، البيانات: "id=" + id + "&pid=" + pid, url: "/path/to/script/test.php"، النجاح: الوظيفة(البيانات) ( $("#content").html(data); ) ) تُرجع صحيحًا؛
الطلب به خطأ

إجابة:

PHP النصي (test.php):


يمكن العثور على مزيد من المعلومات على: http://api.jquery.com/jquery.ajax/

العوائد: jqXHR

ينفذ طلب HTTP (Ajax) غير متزامن

  • تمت إضافة الإصدار: 1.5 jQuery.ajax(url [، الإعدادات])

    عنوان URL
    النوع: سلسلة
    عنوان URL الذي سيتم إرسال طلب Ajax إليه

    إعدادات
    النوع: كائن
    مجموعة من معلمات المفتاح/القيمة التي تقوم بتكوين طلب Ajax. جميع الإعدادات اختيارية. بشكل افتراضي، يتم أخذ الإعدادات من . في الأسفل يكون القائمة الكاملةجميع الإعدادات.

  • تمت إضافة الإصدار: 1.0 jQuery.ajax (الإعدادات)

    إعدادات
    النوع: كائن
    مجموعة من معلمات المفتاح/القيمة التي تقوم بتكوين طلب Ajax. جميع الإعدادات اختيارية. بشكل افتراضي، يتم أخذ الإعدادات من .

إعدادات:
إعدادات نوع البيانات
يقبل

الافتراضي: يعتمد على نوع البيانات

عند تقديم طلب Ajax، تشير الرؤوس إلى أنواع المحتوى المقبولة المتوقعة من الخادم. سيتم أخذ قيم هذه الأنواع من معلمة القبول. إذا كنت بحاجة إلى تغييره، فمن الأفضل أن تفعل ذلك باستخدام طريقة $.ajaxSetup() .

شيء
غير متزامن

الافتراضي: صحيح

افتراضيًا، يتم إرسال كافة الطلبات بشكل غير متزامن (قيمة هذه المعلمة صحيحة). إذا كنت بحاجة إلى طلبات متزامنة، فقم بتعيين المعلمة غير المتزامنة على خطأ. لا يتم تنفيذ الطلبات عبر النطاقات ونوع البيانات: "jsonp" بشكل متزامن. يرجى ملاحظة أن الطلبات المتزامنة قد تمنع المتصفح أثناء تنفيذ الطلب.

منطقي
قبل الإرسال (jqXHR jqXHR، كائن الإعدادات)

دالة سيتم استدعاؤها مباشرة قبل إرسال طلب ajax إلى الخادم. يمكن استخدامه لتعديل كائن jqXHR (في الإصدارات السابقة، قبل jQuery 1.4.x، تم استخدام XMLHttpRequest). ويمكن استخدامه أيضًا لتغيير الرؤوس، وما إلى ذلك. يتم تمرير كائن من النوع jqXHR وكائن إعدادات كوسيطات. سيؤدي إرجاع خطأ في وظيفة beforeSend إلى إلغاء طلب ajax. منذ الإصدار 1.5 من jQuery، سيتم تفعيل التابع beforeSend بغض النظر عن نوع الطلب.

وظيفة
مخبأ

الافتراضي: true وfalse لأنواع البيانات "script" و"jsonp".

إذا كان خطأ، فلن يتم تخزين الصفحة المطلوبة مؤقتًا بواسطة المتصفح.

منطقي
كامل (jqXHR jqXHR، حالة النص النصية)

دالة سيتم استدعاؤها بعد اكتمال طلب ajax (يتم تشغيلها بعد نجاح وظائف معالج الأخطاء). تأخذ الدالة وسيطتين: كائن من النوع jqXHR (في الإصدارات السابقة، قبل jQuery 1.4.x، تم استخدام XMLHttpRequest) وسلسلة تصف حالة الطلب ("نجاح"، "غير معدل"، "خطأ"، "مهلة" "، أو "إحباط"، أو "خطأ محللي"). اعتبارًا من الإصدار jQuery 1.5، أصبح الأمر Complete يقبل مجموعة من الوظائف.

الدالة أو المصفوفة
محتويات

يتم تحديد المعلمة بالتنسيق (سلسلة: تعبير عادي) وتحدد كيفية تحليل jQuery للاستجابة من الخادم، اعتمادًا على نوعها. (أضيفت في الإصدار 1.5)

شيء
نوع المحتوى

الافتراضي: "application/x-www-form-urlencoded; مجموعة الأحرف=UTF-8"

في إرسال اياكسالطلب، يتم إرسال البيانات بالشكل الذي تم تحديده فيه هذه المعلمة. الافتراضي هو "application/x-www-form-urlencoded; charset=UTF-8". إذا قمت بتعيين القيمة بنفسك، فسيتم إرسالها إلى الخادم. إذا لم يتم تحديد الترميز، فسيتم استخدام الترميز الافتراضي المعين على الخادم.

خط
سياق

الكائن الذي سيصبح السياق بعد اكتمال الطلب (القيمة التي تم تمريرها إلى هذا المتغير). على سبيل المثال، إذا قمت بتحديد عنصر DOM كسياق، فسيتم أيضًا تنفيذ جميع معالجات طلب ajax في سياق عنصر DOM هذا. في في هذا المثالستحتوي الكلمة الأساسية هذه على document.body:

$.ajax(( URL: "test.html"، السياق: document.body، النجاح: function())( $(this).addClass("done"); ) ));

شيء
المحولات

الافتراضي: ("*text": window.String، "text html": true، "text json": jQuery.parseJSON، "text xml": jQuery.parseXML)

يحدد الوظائف التي سيتم استخدامها لتحويل القيم من نوع إلى آخر. (أضيفت في الإصدار 1.5)

شيء
عبر النطاق

الافتراضي: خطأ لنفس المجال، صحيح للاستعلامات عبر النطاقات.

إذا كنت تريد تنفيذ طلب عبر النطاق (على سبيل المثال، JSONP) على نفس المجال، فاضبط إعداد crossDomain على true. وهذا يسمح، على سبيل المثال، بإعادة توجيه الخادم إلى مجال آخر. (أضيفت في الإصدار 1.5)

منطقي
بيانات

البيانات التي سيتم نقلها إلى الخادم. إذا لم تكن البيانات سلسلة، فسيتم تحويلها إلى سلسلة استعلام. لاستفسارات مثل احصل على البياناتمرفقة بعنوان URL. يجب أن يتكون الكائن من أزواج المفتاح/القيمة. إذا كانت القيمة عبارة عن مصفوفة، فإن jQuery يرتب القيم وفقًا للإعداد التقليدي. افتراضيًا، على سبيل المثال، (foo:["bar1"، "bar2"]) يصبح &foo=bar1&foo=bar2 .

كائن أو سلسلة
عامل تصفية البيانات (بيانات السلسلة، نوع السلسلة)

دالة سيتم استخدامها لمعالجة البيانات الأولية من نوع XMLHttpRequest المستلمة من الخادم. يجب أن تعمل وظيفتك كمرشح وتعيد السلسلة المنظفة. يتم تمرير معلمتين إلى الوظيفة: البيانات المستلمة وقيمة معلمة dataType.

وظيفة
نوع البيانات

الافتراضي: السلسلة التي تم اكتشافها تلقائيًا (xml، أو json، أو script، أو html)

نوع البيانات المتوقعة من الخادم. إذا لم يتم تحديد الخيار، فسيحاول jQuery تحديد النوع بناءً على نوع MIME للاستجابة.

خط
خطأ (jqXHR jqXHR، حالة نص السلسلة، خطأ سلسلة)

دالة يتم تنفيذها في حالة فشل الطلب. يأخذ 3 وسيطات: كائن jqXHR (المعروف سابقًا باسم XMLHttpRequest)، وسلسلة تصف الخطأ، وسلسلة استثناء إذا تم طرحها. قد تحتوي الوسيطة الثانية القيم التالية: فارغة، و"مهلة"، و"خطأ"، و"إحباط"، و"خطأ محللي". في حالة حدوث خطأ HTTP، ستتم كتابة حالة النص الخاصة به إلى الوسيطة الثالثة. على سبيل المثال، "لم يتم العثور عليه" أو " الخادم الداخليخطأ." بدءًا من الإصدار jQuery 1.5، بدلًا من وظيفة واحدة، يمكن لهذه المعلمة قبول مجموعة من الوظائف. لا يحدث حدث الخطأ عندما يكون dataType عبارة عن برنامج نصي أو JSONP.

الدالة أو المصفوفة
عالمي

الافتراضي: صحيح.

ما إذا كان سيتم استدعاء معالجات أحداث Ajax العالمية لهذا الطلب أم لا (مثل ajaxStart أو ajaxStop).

منطقي
رؤوس

تقصير: ()

هنا يمكنك تحديد رؤوس الطلب الإضافية. سيتم إدخال قيم هذا الإعداد قبل استدعاء وظيفة beforeSend، حيث يمكن إجراء التغييرات النهائية على الرؤوس. (أضيفت في الإصدار 1.5)

شيء
ifModified

الافتراضي: خطأ

لن يعتبر الطلب ناجحًا إلا إذا تغيرت بيانات الاستجابة منذ آخر طلب. يتم إجراء الفحص باستخدام رأس Last-Modified. بشكل افتراضي، هذا الخيارعاجز. في jQuery 1.4، يتم أيضًا التحقق من قيمة "etag" لتتبع ما إذا كانت البيانات قد تغيرت.

منطقي
com.isLocal

الافتراضي: اعتمادا على الموقع الحالي

تحدد المعلمة ما إذا كانت صفحة الويب تعمل محليًا (على سبيل المثال، بواسطة بروتوكول الملفو *-الامتداد والقطعة) أو لا (على سبيل المثال، بواسطة بروتوكول http). من الأفضل تغيير هذا الإعداد باستخدام طريقة $.ajaxSetup() . (أضيفت في الإصدار 1.5)

منطقي
jsonp

يحدد اسم المعلمة التي تمت إضافتها إلى عنوان URL لطلب JSONP (افتراضيًا، يتم استخدام "رد الاتصال"). على سبيل المثال، يتم تحويل الإعداد (jsonp:"onJSONPLoad") إلى جزء عنوان URLالأسطر "onJSONPLoad=؟". منذ الإصدار 1.5، يؤدي تحديد false في هذه المعلمة إلى منع إضافة معلمة إضافية إلى عنوان url. في هذه الحالة، تحتاج إلى تعيين قيمة الإعداد jsonpCallback. على سبيل المثال: (jsonp:false، jsonpCallback:"callbackName").

خط
jsonpCallback

دالة سيتم استدعاؤها عندما يستجيب الخادم لطلب JSONP. افتراضيًا، يُنشئ jQuery كائنًا عشوائيًا اسم فريدهذه الوظيفة، وهي الأفضل. إذا كنت ترغب في استخدام التخزين المؤقت الحصول على الطلبات، ثم أدخل اسم الوظيفة بنفسك. بدءًا من الإصدار 1.5، يمكنك تحديد وظيفة لمعالجة استجابة الخادم بنفسك.

سلسلة أو وظيفة
نوع التمثيل الصامت

هنا يمكنك تحديد نوع البيانات التي تتوقع الاستجابة من الخادم بدلاً من XHR. (أضيف في الإصدار 1.5.1)

خط
كلمة المرور

كلمة المرور المستخدمة للرد على طلب مصادقة الوصول إلى HTTP (إذا لزم الأمر)

خط
اسم المستخدم

اسم المستخدم الذي سيتم استخدامه استجابةً لطلب مصادقة الوصول إلى HTTP (إذا لزم الأمر)

خط
معالجة البيانات

الافتراضي: صحيح؛

افتراضيًا، يتم تحويل البيانات التي تم تمريرها إلى الخادم من كائن إلى سلسلة استعلام وإرسالها كـ "application/x-www-form-urlencoded". إذا كنت بحاجة إلى إرسال مستند DOM أو بيانات أخرى لا يمكن تحويلها، فاضبط خيار ProcessData على false.

منطقي
scriptCharset

ينطبق فقط على طلبات Ajax GET من النوعين "JSONP" و"script". إذا كان الخادم الموجود في مجال جهة خارجية يستخدم ترميزًا مختلفًا عن ترميزك، فيجب عليك تحديد ترميز خادم الجهة الخارجية.

خط
كود الحالة

تقصير: ()

مجموعة من الأزواج التي ترتبط فيها رموز تنفيذ الطلب بالوظائف التي سيتم استدعاؤها. على سبيل المثال، بالنسبة للرمز 404 (الصفحات غير موجودة)، يمكنك عرض رسالة على الشاشة:

$.ajax((statusCode:( 404:function())( تنبيه("لم يتم العثور على الصفحة"); ) ) ));

إذا كان الطلب ناجحًا، فستأخذ الوظيفة المجهولة كمعلمة نفس المعلمات اللازمة للنجاح. إذا كان هناك خطأ، فسوف يستغرق الأمر نفس الشيء كما هو الحال مع وظيفة معالج الأخطاء. (أضيفت في الإصدار 1.5)

شيء
النجاح (كائن البيانات، سلسلة textStatus، كائن jqXHR)

دالة سيتم استدعاؤها إذا اكتمل الطلب بنجاح. يأخذ 3 وسيطات - البيانات التي يرسلها الخادم ويتم تمريرها المعالجة الأولية; سلسلة مع حالة التنفيذ (textStatus)؛ كائن jqXHR (في الإصدارات السابقة للإصدار 1.5، يتم استخدام XMLHttpRequest بدلاً من jqXHR). اعتبارًا من الإصدار jQuery 1.5، بدلًا من وظيفة واحدة، يمكن لهذه المعلمة قبول مجموعة من الوظائف.

الدالة أو المصفوفة
نفذ الوقت

وقت انتظار الرد من الخادم بالمللي ثانية. يعيد الكتابة الإعداد العالمينفس المعلمة في $.ajaxSetup(). إذا تم تجاوز هذا الوقت، فسيفشل الطلب وسيحدث خطأ بالحالة "مهلة".

رقم
تقليدي

الافتراضي: خطأ

قم بتعيين هذه المعلمة على true لاستخدام نمط التسلسل التقليدي.

منطقي
يكتب

الافتراضي: الحصول على

يحدد ما إذا كان الطلب هو GET أو POST. يمكنك أيضًا استخدام طلبات HTTP أخرى (مثل PUT أو DELETE)، ولكن انتبه إلى أنه ليست كل المتصفحات تدعمها.

خط
عنوان URL

الافتراضي: الصفحة الحالية.

الصفحة التي سيتم إرسال الطلب إليها.

خط
xhr

بشكل افتراضي، ActiveXObject في IE، وXMLHttpRequest في المتصفحات الأخرى.

وظيفة رد الاتصال لإنشاء كائن XMLHttpRequest. من خلال إنشاء وظيفتك، فإنك تتحمل المسؤولية الكاملة عن إنشاء الكائن.

وظيفة
xhrFields

كائن النموذج (الاسم: القيمة) لتغيير قيم الحقول المقابلة لكائن XMLHttpRequest.

$.ajax(( url: a_cross_domain_url, xhrFields: ( withCredentials: true ) ));

(أضيف في الإصدار 1.5.1)

خريطة

$.ajax(( النوع: "POST"، عنوان url: "some.php"، البيانات: (الاسم: "John"، الموقع: "بوسطن" ) )).done(function(msg) ( تنبيه("البيانات المحفوظة: " + رسالة)؛ ));

احصل على أحدث نسخة صفحات HTML

$.ajax(( URL: "test.html"، ذاكرة التخزين المؤقت: false )).done(function(html) ( $("#results").append(html); ));

تنتقل كبيانات وثيقة XML. نقوم بتعطيل التحويل التلقائي للبيانات إلى سلسلة عادية عن طريق ضبط إعداد ProcessData على false:

فار xmlDocument = ; var xmlRequest = $.ajax(( url: "page.php"، بيانات العملية: false، البيانات: xmlDocument )); xmlRequest.done(handleResponse);

var MenuId = $("ul.nav").first().attr("id"); طلب var = $.ajax(( URL: "script.php"، النوع: "POST"، البيانات: (المعرف: MenuId)، نوع البيانات: "html" )); request.done(function(msg) ( $("#log").html(msg); )); request.fail(function(jqXHR, textStatus) ( تنبيه("فشل الطلب: " + textStatus); ));

تحميل وتنفيذ ملف جافا سكريبت:

$.ajax(( النوع: "GET"، عنوان url: "test.js"، نوع البيانات: "script" ));

آخر تحديث: 11/1/2015

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

على سبيل المثال، نستخدم طريقة ajax لتحميل ترميز html إلى عنصر في الصفحة:

تحميل $(function())( $("button").click(function())( $.ajax("ajax.php", (success: function(data)( $("#result").html( بيانات) ؛ ) ))؛

اسمح لمورد ajax.php الموجود على جانب الخادم بإرجاع بعض علامات html استجابةً لذلك.

في هذه الحالة، نحدد معلمتين: عنوان الطلب ومعلمة النجاح، التي تقبل وظيفة تعالج الاستجابة من الخادم.

يمكننا أن نفعل نفس الشيء بشكل أساسي باستخدام طريقة التحميل، وبمساعدة الحصول على الطريقة. لكن تنوع معلمات طريقة ajax يسمح لك بتخصيص الطلب بمزيد من التفاصيل.

عند المخرجات، تقوم طريقة ajax، مثل الطرق الأخرى، بإرجاع كائن jqXHR مرتبط بالطلب الحالي.

يمكن أن تتخذ طريقة ajax الأشكال التالية: ajax(url, options) و ajax(options) . تمثل معلمة الخيارات كائن جافا سكريبت الذي نحدد فيه خيارات الطلب التي نحتاجها في شكل أزواج قيمة المفتاح. لذلك، في المثال أعلاه استخدمنا خيار النجاح. فيما يلي بعض الخيارات التي يمكننا استخدامها في طريقة اياكس:

    url: عنوان المورد الذي تم إرسال الطلب إليه. نوع البيانات: سلسلة

    غير متزامن: يشير إلى ما إذا كان الطلب غير متزامن. نوع البيانات: قيمة منطقية. الافتراضيات إلى صحيح. إذا كانت القيمة خاطئة، فسيتم إرسال الطلب بشكل متزامن

    نوع البيانات: نوع البيانات المستلمة من الخادم. نوع البيانات: سلسلة.

    يمكن أن تأخذ القيم التالية: html، xml، json، jsonp، text، script

    ذاكرة التخزين المؤقت: تشير إلى ما إذا كان سيتم تخزين الاستجابة مؤقتًا بواسطة متصفح الويب. نوع البيانات: قيمة منطقية. الافتراضيات إلى صحيح.

    وخطأ افتراضيًا للطلبات التي يكون نوع بياناتها "script" أو "jsonp"

    السياق: عنصر يمثل سياق البيانات لوظائف رد الاتصال. على سبيل المثال:

    $.ajax(( URL: "ajax.php"، السياق: document.body ));

    النوع: يشير إلى نوع الطلب. عادة "الحصول على" أو "النشر". نوع البيانات: سلسلة. الافتراضي "الحصول على"

    البيانات: البيانات المرسلة مع الطلب إلى الخادم. نوع البيانات: كائن سلسلة أو جافا سكريبت

    المهلة: الوقت بالمللي ثانية لانتظار الرد على الطلب

    عالمي: يحدد ما إذا كان من الممكن رفع أحداث أجاكس العالمية. نوع البيانات: قيمة منطقية. افتراضيًا، هذا صحيح، أي أن استدعاء الأحداث العالمية مسموح به

    isModified: يسمح لك بالتحقق من رأس الاستجابة Last-Modified. نوع البيانات: قيمة منطقية. الإعداد الافتراضي هو خطأ، مما يعني أن هذا الرأس لم يتم تحديده. إذا كان صحيحا، يتم فحص الرأس. ويتم طلب البيانات إذا تغيرت منذ آخر طلب للبيانات. إذا لم يتم تغيير البيانات، فستكون قيمة معلمة البيانات في معالج دالة النجاح غير محددة

    كلمة المرور: كلمة المرور المطلوبة إذا كان الطلب يتطلب المصادقة. نوع البيانات: سلسلة

    اسم المستخدم: اسم المستخدم أو تسجيل الدخول مطلوب إذا كان الطلب يتطلب المصادقة. نوع البيانات: سلسلة

    dataFilter: وظيفة تصفية البيانات الأولية. يستغرق معلمتين: function(data, type) . تمثل معلمة البيانات البيانات المستلمة من الخادم، والنوع هو نوع البيانات. عند الإخراج، يجب أن تقوم الدالة بإرجاع البيانات التي تمت تصفيتها

    النجاح: يتم استدعاء الوظيفة في حالة نجاح الطلب. يمكن أن يستغرق الأمر ثلاث معلمات: function(data, textStatus, jqXHR) . تمثل معلمة البيانات البيانات الواردة من الخادم. تقوم المعلمة textStatus بتمرير رمز الحالة. تمثل المعلمة الثالثة كائن jqXHR المرتبط بالطلب

    خطأ: دالة يتم استدعاؤها إذا أبلغ رمز الحالة عن خطأ. يمكن أن يستغرق الأمر ثلاث معلمات: الوظيفة (jqXHR، textStatus، errorThrown)

    مكتمل: دالة يتم استدعاؤها بعد اكتمال الطلب. يمكن أن يستغرق الأمر معلمتين: function(jqXHR, textStatus) . تخبرنا المعلمة textStatus ما إذا كان الطلب ناجحًا أم فاشلاً.

    beforeSend: الوظيفة التي يتم تشغيلها قبل إرسال الطلب. يستغرق الأمر معلمتين: function(jqXHR, settings) . تحتوي معلمة الإعدادات على كائن يقوم بتخزين بعض إعدادات الطلب الإضافية. إذا أعادت هذه الدالة خطأ، فسيتم إلغاء الطلب

    xhr: وظيفة لإنشاء كائن XMLHttpRequest

بالطبع، ليس من الضروري استخدام جميع المعلمات، الشيء الرئيسي هو أن نأخذ في الاعتبار أنه من خلال الجمع بين مجموعات من المعلمات، يمكننا جعل طلب Ajax أكثر اتساقًا مع متطلباتنا.

تسلسل بيانات النموذج وطلبات POST

لقد نظرنا أعلاه بالفعل في إرسال طلبات GET، والآن دعونا نرى كيف يمكننا إرسال طلبات POST باستخدام طريقة ajax.

على جانب الخادم دعونا لدينا معالجة بسيطةبيانات الترخيص:

لنقم بإنشاء نموذج على صفحة الويب ونقوم بتعيين المعلمات لطريقة ajax:





$(function())( $("#loginForm").submit(function(event) ( events.preventDefault(); $.ajax(( url: $("#loginForm").attr("action"), البيانات : $("#loginForm").serialize()، النوع: "POST"، النجاح: function(data)( $("#result").html(data); ) ));

في العصر الويب الحديثأصبحت معظم مواقع الويب أكثر تفاعلية. إذا كنا في السابق، من أجل الحصول على البيانات المحدثة، نحتاج إلى تحديث الصفحة بأكملها، فقد ظهرت الآن تقنيات تسمح لنا بعدم تحميل الصفحة بأكملها، ولكن جزء منفصل منها فقط. وهذا بدوره يوفر الراحة لكل من المستخدمين وأصحاب الخادم، لأن الصفحة سيتم تحميلها بشكل أسرع للمستخدم، حيث يتم تحميل جزء منفصل فقط من الصفحة، ولا يحتاج الخادم إلى إنشاء الصفحة في كل مرة وإعطائها المستخدم. هذه القدرات سهلة التنفيذ مساعدة PHPو اياكس.

سنلقي اليوم نظرة على مثال صغير لفهم كيفية عمل مفهوم AJAX بشكل أفضل. في بعض الأحيان يكون من الصعب على المبتدئين فهم كيفية تفاعل PHP وAjax مع بعضهما البعض؛ يبحث العديد من الأشخاص عن أمثلة لكيفية التحقق من صحة النماذج بسرعة دون إعادة تحميل الصفحة بأكملها. سأوضح لك بإيجاز كيف يتم ذلك، حتى تتمكن من فهم الأساسيات والمبادئ التي ستسمح لك بإتقان الأدوات الأخرى بسرعة أكبر وكتابة البرامج النصية الخاصة بك في المستقبل.

دعونا نتوصل إلى مهمة صغيرة لأنفسنا ونتحقق من توفرها عناوين البريد الإلكترونيفي قاعدة البيانات دون إعادة تحميل الصفحة باستخدام PHP وAjax. سيوضح هذا المثال جيدًا كيف يمكننا التفاعل مع الخادم دون إعادة تحميل الصفحة في المتصفح، كما يُستخدم هذا غالبًا لأنواع مختلفة من عمليات التحقق من صحة نماذج المستخدم. في الدليل الجذر، سنقوم بإنشاء 3 ملفات باسم Index.php، email.php، validate.js.

إنشاء صفحة

دعونا نخلق صفحة بسيطةبنموذج واحد يحتوي على حقل واحد فقط لإدخال البريد الإلكتروني.
بناء جملة ملف Index.php

دروس أجاكس

أسهل طريقة للعمل مع AJAX هي توصيل إطار عمل jQuery، وهذا بالضبط ما فعلته. يوفر لنا jQuery بناء جملة سهل الفهم وسهل الاستخدام لإرسال طلبات AJAX، فلماذا لا نستفيد منه؟

إنشاء برنامج نصي JS

بناء جملة الملف validate.js

$(document).ready(function())( var email = ""; $("#email").keyup(function())( var value = $(this).val(); $.ajax(( النوع: "POST"، عنوان url:"email.php"، البيانات:"email="+value, Success:function(msg)( if(msg == "valid")( $("#message").html( "يمكن استخدام هذا البريد الإلكتروني. هذا البريد الإلكتروني مأخوذ بالفعل." ) ) ) ));click(function())( if(email == "")( تنبيه() "من فضلك، ضع البيانات في كل رسائل البريد الإلكتروني"); )else( $.ajax(( type: "POST", url:"email.php", data:"add_email="+email, Success:function(msg)( $ ("#message" ).html(msg ) ));

معالج PHP

سيتلقى هذا البرنامج النصي طلب POST من العميل ويعالجه ويعيد النتيجة. يقرأ AJAX النتيجة ويتخذ القرار بناءً عليها.
بناء جملة ملف Email.php

$connection = mysqli_connect("localhost"،"email"،"email"، "email")؛ if(isset($_POST["email"]) && $_POST["email"] != "")( $email = $_POST["email"]; $email = mysqli_real_escape_string($connection,$email); if (!filter_var($email, FILTER_VALIDATE_EMAIL))( echo "invalid"; )else( $sql = "SELECT id FROM email WHERE email = "$email""; $result = mysqli_query($connection,$sql); if( mysqli_num_rows($result) == 1)( echo "invalid"; )else( echo "valid"; ) ) ) if(isset($_POST["add_email"]) && $_POST["add_email"] != "" )( $email = mysqli_real_escape_string($connection,$_POST["add_email"]); $sql = "INSERT INTO email(email) VALUES("$email")"; if(mysqli_query($connection,$sql))( صدى النجاح"; )آخر( صدى "خطأ"; ) )

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

يرسل AJAX طلب POST إلى البرنامج النصي باستخدام هذا الجزء من التعليمات البرمجية:

$.ajax(( النوع:"POST"، عنوان url:"email.php"، البيانات:"email="+value, Success:function(msg)( if(msg == "valid")( $("#message ").html("يمكن استخدام هذا البريد الإلكتروني."); email = value; )else( $("#message").html("تم استخدام هذا البريد الإلكتروني بالفعل."); ) ) ));

النوع - نوع الطلب، POST أو GET. في حالتنا POST؛
URL - عنوان البرنامج النصي الذي تم إرسال الطلب إليه؛
البيانات - البيانات التي يتم إرسالها في الطلب؛
النجاح - ما يجب القيام به نتيجة التنفيذ الناجح للطلب. في حالتنا، يتم استدعاء الدالة؛

في البرنامج النصي نفسه، يتم التحقق من وجود بريد إلكتروني في قاعدة البيانات في كل مرة يتم فيها إدخال حرف في حقل البريد الإلكتروني. في البرنامج النصي، القسم $("#email").keyup(function()()); هو المسؤول عن معالجة الإدخال. ، والذي يتحقق من الضغط على مفتاح في حقل بالمعرف = "البريد الإلكتروني".
كما ترون، فإن الكود بسيط للغاية ولا يتطلب مهارات كبيرة بشكل خاص لفهمه، كل شيء مرتبط بمعالجة الأحداث keyup() - الضغط على المفتاح، click() - النقر بالماوس على عنصر ما. ويتبع ذلك طلب AJAX واستجابة من البرنامج النصي. وبالتالي، باستخدام php و ajax، يمكنك الحصول على إمكانيات لا حدود لها تقريبًا لإنشاء صفحات تفاعلية.
لا يدعي هذا الكود أنه عالي الجودة، ولكن إذا قمت بتطويره، وإضافة عمليات التحقق الصحيحة على مستوى العميل والخادم، وإدخال CSS، فيمكن استخدامه في مشاريعك.
إذا كان لديك أي أسئلة، فلا تتردد في كتابة التعليقات.
أتمنى لك اتمنى لك يوم جيدو أراك قريبا :)

مجموعة من أزواج المفاتيح/القيمة التي تقوم بتكوين الطلب اياكس. جميع المعلمات اختيارية. من المقبول، ولكن ليس من المستحسن، تعيين قيمة افتراضية لأي معلمة باستخدام الأسلوب $.ajaxSetup() .
يدعم الأسلوب $.ajax() المعلمات التالية:

    يقبل (افتراضي: يعتمد على نوع البيانات).

    النوع: كائن عادي.
    مجموعة من أزواج المفاتيح/القيمة التي يتم إرسالها إليها يقبلرأس الطلب. يخبر هذا الرأس الخادم بنوع الاستجابة التي سيقبلها الطلب ردًا على ذلك. لاحظ أن قيمة المعلمة المحددة في dataType (نوع البيانات التي نتوقعها من الخادم) تم تعيينها لتلك المحددة في المعلمة. بالإضافة إلى ذلك، لمعالجة الاستجابة من الخادم بشكل صحيح، يجب عليك تحديد وظيفة في معلمة المحولات تقوم بإرجاع قيمة الاستجابة المحولة. على سبيل المثال: $.ajax(( Accepts : ( mycustomtype: "application/x-some-custom-type " ) ، // تحديد كيفية معالجة محولات الاستجابة : ( "text mycustomtype ": function ( نتيجة) ( // إرجاع قيمة الاستجابة المحولة return newresult; ) ) , // نوع البيانات المتوقع ("mycustomtype") dataType : "mycustomtype" ) );

    غير متزامن (الافتراضي: صحيح).

    النوع: منطقي.
    افتراضيًا، يتم إرسال جميع الطلبات بشكل غير متزامن؛ إذا كنت بحاجة إلى تنظيم طلبات متزامنة، فاضبط هذه المعلمة على false . لاحظ أن الاستعلامات عبر المجالات والعنصر الذي تكون معلمة dataType الخاصة به "جسونب"لا تدعم الاستعلامات في الوضع المتزامن. يرجى ملاحظة أنه باستخدام الطلبات المتزامنة، يمكنك حظر المتصفح مؤقتًا عن طريق تعطيل أي إجراءات أثناء نشاط الطلب.

    قبل الإرسال. النوع: الوظيفة (jqXHR jqXHRكائن عادي إعدادات).
    وظيفة رد الاتصال التي سيتم استدعاؤها قبل التنفيذ طلب أجاكسأ. تسمح لك هذه الوظيفة بتغيير كائن jqXHR (في jQuery 1.4.x كائن XMLHTTPRequest) قبل إرساله. الكائن jqXHR هو عبارة عن وظيفة إضافية تعمل على توسيع كائن XMLHttpRequest، يحتوي الكائن على العديد من الخصائص والأساليب التي تتيح لك الحصول على المزيد معلومات كاملةحول استجابة الخادم، ويحتوي الكائن أيضًا على أساليب الوعد. إذا قامت الدالة beforeSend بإرجاع خطأ، فسيتم إلغاء طلب AJAX. منذ الإصدار مسج 1.5سيتم استدعاء الدالة beforeSend بغض النظر عن نوع الطلب.

    ذاكرة التخزين المؤقت (الافتراضي: صحيح، لنوع البيانات "النصي"و "جسونب"خطأ شنيع ).

    النوع: منطقي.
    إذا تم التعيين على "خطأ"، فسيؤدي ذلك إلى عدم تخزين الصفحات المطلوبة مؤقتًا بواسطة المتصفح. لاحظ أن false لن يعمل إلا بشكل صحيح مع رأسو يحصلطلبات.

    مكتمل.

    النوع: الوظيفة (jqXHR jqXHR،خيط textStatus).
    دالة يتم استدعاؤها عند انتهاء الطلب (يتم تنفيذ الوظيفة بعد أحداث AJAX "نجاح"أو "خطأ"). يتم تمرير معلمتين إلى الدالة: jqXHR(في كائن jQuery 1.4.x طلب XMLHTTP) والسطر المقابل لحالة الطلب ( "نجاح", "غير معدل", "لا يوجد محتوى", "خطأ", "نفذ الوقت", "إجهاض"، أو "خطأ في برنامج التحليل"). منذ الإصدار jQuery 1.5، أصبح بإمكان المعامل Complete قبول مجموعة من الوظائف التي سيتم استدعاؤها واحدة تلو الأخرى.

    محتويات.

    النوع: كائن عادي.
    كائن يتكون من أزواج سلسلة/تعبير منطقي يحدد كيفية معالجة (تحليل) jQuery للاستجابة اعتمادًا على نوع المحتوى. أضيفت في مسج 1.5.

    نوع المحتوى (الافتراضي: "التطبيق/x-www-form-urlencoded؛ مجموعة الأحرف=UTF-8").

    النوع: منطقية، أو سلسلة.
    يحدد نوع المحتوى المحدد في الطلب عند إرسال البيانات إلى الخادم. منذ الإصدار 1.6 من jQuery، أصبح من الممكن تحديد القيمة false، وفي هذه الحالة لا تقوم jQuery بتمرير الحقل الموجود في الرأس نوع المحتوىعلى الاطلاق.

    سياق.

    النوع: كائن عادي.
    عند تنفيذ وظائف رد اتصال AJAX، يكون سياق التنفيذ الخاص بها هو كائن النافذة. تسمح لك معلمة السياق بتكوين سياق تنفيذ الوظيفة بحيث يشير $(this ) إلى عنصر أو كائن DOM محدد. على سبيل المثال: $.ajax(( url : "test.html ", context : $(".myClass "), // نجاح سياق تنفيذ الوظيفة الجديدة : function ()( // إذا كان الطلب ناجحًا، فاتصل بالوظيفة $ (هذا .html ("كل شيء على ما يرام")؛ // أضف محتوى نصيًا إلى العنصر الذي يحتوي على class.myClass ) ));

    المحولات

    قيم افتراضية:
    ("* text": window.String، // أي نوع في النص "text html": صحيح، // text in html "text json": jQuery.parseJSON، // text in JSON "text xml": jQuery.parseXML // نص بتنسيق XML) النوع: PlainObject.
    كائن يحتوي على نوع البيانات المطلوب تحويلها وكيفية تحويلها. قيمة كل محول هي دالة تقوم بإرجاع قيمة الاستجابة المحولة. أضيفت في مسج 1.5.

    crossDomain (الافتراضي: خطأ للطلبات داخل نفس المجال، صحيح للطلبات عبر النطاقات).

    النوع: منطقي.
    إذا كنت تريد تقديم طلب عبر النطاق أثناء تواجدك في نفس المجال (على سبيل المثال طلب jsonp)، فقم بتعيين هذه المعلمة على true . سيسمح هذا، على سبيل المثال، بإعادة توجيه الطلب إلى مجال آخر من الخادم الخاص بك. أضيفت في مسج 1.5.

    النوع: PlainObject، أو String، أو Array.
    البيانات التي سيتم إرسالها إلى الخادم. إذا لم تكن سلسلة، فسيتم تحويلها إلى سلسلة استعلام. ل يحصلالطلبات، ستتم إضافة السلسلة إلى عنوان URL. حتي نمنع المعالجة التلقائيةيمكنك استخدام معلمة ProcessData بالقيمة false . إذا تم نقل البيانات كجزء من كائن، فيجب أن تتكون من أزواج المفتاح/القيمة. إذا كانت القيمة مصفوفة، يقوم jQuery بإجراء تسلسل لقيم متعددة باستخدام نفس المفتاح (اعتمادًا على قيمة المعلمة التقليدية، والتي تتيح نوع التسلسل التقليدي استنادًا إلى طريقة $.param).

    dataFilter.

    النوع: الوظيفة (سلسلة بيانات،خيط يكتب) => أي شيء .
    يتم استدعاء الوظيفة بعد التنفيذ الناجح لطلب AJAX وتسمح لك بمعالجة البيانات "الأولية" المستلمة من استجابة الخادم. يجب أن تتم إعادة البيانات مباشرة بعد المعالجة. تأخذ الدالة وسيطتين: بيانات- البيانات الواردة من الخادم في شكل سلسلة و يكتب- نوع هذه البيانات (قيمة معلمة dataType).

    نوع البيانات (الافتراضي: xml, json, النصي، أو لغة البرمجة).

    النوع: سلسلة.
    يحدد نوع البيانات التي تتوقع تلقيها من الخادم. إذا لم يتم تحديد نوع البيانات، فسيحاول jQuery تحديده بناءً على نوع MIME من الاستجابة ( XMLيكتب MIMEسينتج عنه XML، اعتبارًا من jQuery 1.4 jsonسوف يعطي كائن جافا سكريبت, النصيسيتم تنفيذ البرنامج النصي وسيتم إرجاع كل شيء آخر كسلسلة).

    الأنواع الأساسية (يتم تمرير النتيجة كوسيطة أولى لوظيفة رد الاتصال الناجحة):

    • "XML" - إرجاع XMLالمستند الذي يمكن تقديمه باستخدام jQuery.
    • "أتش تي أم أل" - إرجاع لغة البرمجةكنص عادي، ستتم معالجة العلامات وتنفيذها بمجرد إدراجها في نموذج كائن المستند ( DOM).
    • "البرنامج النصي" - يقيم الاستجابة كـ جافا سكريبتويعيده كنص عادي. تعطيل التخزين المؤقت عن طريق إضافة المعلمة _= إلى سلسلة الاستعلام، حتى لو كانت معلمة التخزين المؤقت صحيحة. سيؤدي هذا إلى تحويل الطريقة بريدالخامس يحصلللطلبات عبر النطاقات.
    • "json" - يقيم الاستجابة كـ JSONوإرجاع كائن جافا سكريبت. عبر النطاق "جسون"يتم تحويل الطلبات إلى "جسونب"إذا لم يتم تحديد jsonp في معلمات الطلب: false. بيانات JSONيتم تحليلها بترتيب صارم ويجب أن تمتثل للتنسيق المقبول عمومًا، أي غير صحيح JSONتم رفضه وإلقاء خطأ. اعتبارًا من الإصدار 1.9 من jQuery، لم يتم قبول الاستجابة الفارغة؛ يجب أن يُرجع الخادم NULL أو () كرد.
    • "jsonp" - يقوم بتحميل البيانات بالتنسيق JSONباستخدام تنسيق التنزيل JSONP. يضيف معلمة إضافية"?callback=? " حتى النهاية عنوان URLعناوين لتحديد اسم وظيفة المعالج. تعطيل التخزين المؤقت عن طريق إضافة المعلمة _= إلى عنوان URLالعنوان، حتى لو كانت معلمة ذاكرة التخزين المؤقت صحيحة.
    • "النص" عبارة عن سلسلة نصية عادية.
    • قيم متعددة - القيم مفصولة بمسافة. منذ الإصدار 1.5، يمكن لـ jQuery تحويل نوع البيانات الذي يتم تلقيه في نوع المحتوى الخاص بالرأس إلى نوع البيانات الذي تحتاجه. على سبيل المثال، إذا كنت تريد تفسير الاستجابة النصية على أنها XML، فاستخدم "text XML" لنوع البيانات هذا. يمكنك أيضًا تقديم طلب JSONP واستلامه كنص وتفسيره على أنه XML: "نص jsonp XML" . السطر التالي سيفعل الشيء نفسه: "jsonp XML"، سيحاول jQuery التحويل منه JSONPالخامس XML، بعد محاولة فاشلةسيحاول تحويل JSONPإلى النص، ثم من النص إلى XML.
  • النوع: الوظيفة (jqXHR jqXHR،خيط textStatus،خيط errorThrown).
    وظيفة رد الاتصال التي يتم استدعاؤها إذا لم يكتمل طلب AJAX. تتلقى الدالة ثلاث وسائط:

    • jqXHR- كائن jqXHR (في jQuery 1.4.x، كائن XMLHttpRequest).
    • textStatus- سلسلة تصف نوع الخطأ الذي حدث. القيم المحتملة (بخلاف null ) ليست كذلك "نفذ الوقت", "خطأ", "إجهاض"و "خطأ في برنامج التحليل".
    • errorThrown - كائن إضافيالاستثناءات إذا حدثت. عندما يحدث خطأ HTTPتحصل الحجة جزء النصالدول، على سبيل المثال "غير معثور عليه"، أو "خطأ في الخادم الداخلي".
    منذ الإصدار مسج 1.5يُسمح بتمرير مجموعة من الوظائف كقيمة معلمة، وسيتم استدعاء كل وظيفة بدورها. لاحظ أنه لا يتم استدعاء هذا المعالج للنصوص البرمجية عبر النطاقات وطلبات JSONP.
  • عالمي (الافتراضي: صحيح).

    النوع: منطقي.
    معلمة منطقية تحدد ما إذا كان مسموحًا باستدعاء معالجات أحداث AJAX العامة لهذا الطلب. القيمة الافتراضية هي الحقيقية . إذا كنت بحاجة إلى منع استدعاء معالجات الأحداث العامة مثل .ajaxStart() أو .ajaxStop()، فاستخدم false .

    الرؤوس (الافتراضي: ( ) ).

    النوع: كائن عادي.
    كائن يحتوي على أزواج المفاتيح/القيمة لرؤوس الطلبات الإضافية التي سيتم إرسالها مع الطلب باستخدام كائن XMLHttpRequest. يرجى ملاحظة أن العنوان طلب X-مع: XMLHttpRequestتتم إضافتها دائمًا، ولكن يمكن تغيير قيمة XMLHttpRequest افتراضيًا باستخدام هذه المعلمة. يمكن أيضًا تجاوز قيم الرؤوس بواسطة المعلمة beforeSend. أضيفت في مسج 1.5.

    ifModified (الافتراضي: false).

    النوع: منطقي.
    القيمة الافتراضية false، وتتجاهل حقول الرأس طلب HTTPوإذا كانت القيمة صحيحة، فسيتم نقل طلب AJAX إلى الحالة بنجاح ( نجاح)، فقط إذا تغيرت الاستجابة من الخادم منذ آخر طلب. يتم التحقق من الصحة عن طريق التحقق من حقل رأس آخر تعديل. منذ الإصدار مسج 1.4، بالإضافة إلى رأس Last-Modified، يتم تحديد "etag" أيضًا ( علامة الكيان) هو معرف خاص يتم تعيينه بواسطة خادم الويب الموجود على نسخة معينةتم العثور على المورد على عنوان URL. إذا تغير محتوى المورد لهذا العنوان إلى عنوان جديد، فسيتم تعيين علامة إلكترونية جديدة.

    isLocal (الافتراضي: يعتمد على الموقع الحالي).

    النوع: منطقي.
    استخدم true لتعريف البيئة الحالية على أنها "محلية" (على سبيل المثال file:///url)، حتى لو لم يتعرف عليها jQuery على هذا النحو افتراضيًا. البروتوكولات التالية معترف بها حاليًا على أنها محلية: ملف, *-امتدادو القطعة. إذا كنت بحاجة إلى تغيير المعلمة isLocal، فمن المستحسن القيام بذلك مرة واحدة باستخدام الدالة $.ajaxSetup() . تمت الإضافة في jQuery 1.5.1.

    النوع: منطقية، أو سلسلة.
    يتجاوز اسم وظيفة رد الاتصال في JSONPطلب. سيتم استخدام هذه القيمة بدلاً من "رد الاتصال" ( "http://domain.ru/test.php?callback=؟") كجزء من سلسلة الاستعلام في عنوان URL. على سبيل المثال، سيتم تمرير القيمة (jsonp: "onLoad") إلى الخادم كـ السطر التاليطلب "http://domain/test.php?onLoad=؟".
    منذ الإصدار jQuery 1.5، يؤدي تعيين المعلمة jsonp إلى false إلى منع إضافة السلسلة "?callback" إلى عنوان URL، أو محاولة استخدام "=؟" لحل الاستجابة. في هذه الحالة، يجب عليك أيضًا تحديد قيمة معلمة jsonpCallback، على سبيل المثال: ( jsonp : false , jsonpCallback : "callbackName " ) لأسباب أمنية، إذا كنت لا تثق في هدف طلبات AJAX الخاصة بك، فمن المستحسن اضبط قيمة المعلمة jsonp على false .

    jsonpCallback.

    النوع: سلسلة، أو وظيفة.
    يحدد اسم وظيفة رد الاتصال لـ JSONPطلب. سيتم استخدام هذه القيمة بدلاً من الاسم العشوائي الذي يتم إنشاؤه وتعيينه تلقائيًا مكتبة مسج. من المستحسن أن يقوم jQuery بإنشاء الاسم الفريد نفسه، وهذا سيجعل من السهل إدارة الطلبات ومعالجة الأخطاء المحتملة. في بعض الحالات، يؤدي تعيين اسم الوظيفة الخاص بك إلى تحسين التخزين المؤقت للمتصفح يحصلطلبات.
    منذ الإصدار 1.5 من jQuery، يمكنك تحديد دالة كقيمة للمعلمة jsonpCallback. في هذه الحالة، يجب تعيين قيمة المعلمة jsonpCallback على القيمة المرجعة لهذه الوظيفة.

    الطريقة (الافتراضية: "يحصل").

    النوع: سلسلة.
    طريقة HTTP، يُستخدم للاستعلام (على سبيل المثال، "بريد", "يحصل", "يضع"). تمت الإضافة في jQuery 1.9.0.

    نوع التمثيل الصامت.

    النوع: سلسلة.
    نوع MIME الذي يتجاوز نوع التمثيل الصامتالمحدد في كائن XHR الافتراضي. تمت الإضافة في jQuery 1.5.1.

    كلمة المرور.

    النوع: سلسلة.
    كلمة المرور التي سيتم استخدامها مع XMLHttpRequest في الاستجابة لطلب مصادقة الوصول HTTP.

    بيانات العملية (الافتراضي: صحيح).

    النوع: منطقي.
    افتراضيًا، ستتم معالجة البيانات التي تم تمريرها إلى معلمة البيانات ككائن وتحويلها إلى سلسلة استعلام مناسبة لنوع البيانات الافتراضي "التطبيق/x-www-form-urlencoded". إذا كنت بحاجة إلى إرسال DOMDocument أو أي بيانات أخرى لم تتم معالجتها، فقم بتعيين هذه المعلمة على false .

    scriptCharset.

    النوع: سلسلة.
    يضبط سمة مجموعة الأحرف (ترميز الأحرف) على علامة HTML، المستخدمة في الطلب. يُستخدم عندما يختلف التشفير الموجود على الصفحة عن تشفير البرنامج النصي البعيد. يرجى ملاحظة أن معلمة scriptCharset تنطبق فقط على الطلبات عبر النطاقات التي تحتوي على معلمة نوع ذات قيمة "يحصل"(افتراضي) ومعلمة dataType ذات القيمة "جسونب"، أو "النصي".

    رمز الحالة (الافتراضي: ( ) ).

    النوع: كائن عادي.
    كائن الرموز الرقمية HTTPوالوظائف التي سيتم استدعاؤها عندما يكون لرمز استجابة الخادم القيمة المناسبة (رمز محدد HTTP). على سبيل المثال، الوظيفة التاليةسيتم استدعاؤه في حالة استلام رمز الاستجابة من الخادم 404 ، أو "غير معثور عليه"(يشير رمز استجابة HTTP القياسي إلى أن العميل كان قادرًا على الاتصال بالخادم، لكن الخادم لم يتمكن من العثور على البيانات كما هو مطلوب.): $.ajax((statusCode : ( 404: function ()( // تنفيذ الوظيفة إذا كان HTTP رمز الاستجابة 404 تنبيه("لم يتم العثور على الصفحة"); 403: الوظيفة ()(/ تنفيذ الوظيفة إذا كان رمز استجابة HTTP هو 403 تنبيه("تم رفض الوصول"); ) ) ));

    نجاح.

    النوع: وظيفة (أي شيء بيانات،خيط textStatus، جقXHR jqXHR).
    دالة رد اتصال يتم استدعاؤها في حالة نجاح طلب AJAX. يتم تمرير الدالة ثلاث وسائط:

    • بيانات- البيانات التي تم إرجاعها من الخادم. يتم تنسيق البيانات وفقًا للمعلمات dataType أو dataFilter، إذا تم تحديدها
    • textStatus- سلسلة تصف حالة الطلب.
    • jqXHR- كائن jqXHR (حتى الإصدار مسج 1.4.xكائن XMLHttpRequest).
    منذ الإصدار مسج 1.5يُسمح بتمرير مجموعة من الوظائف كقيمة معلمة، وسيتم استدعاء كل وظيفة بدورها.
  • نفذ الوقت.

    نوع الرقم.
    التثبيت في ميلي ثانيةمهلة الطلب. معنى 0 يعني أنه لم يتم تعيين مهلة. يرجى ملاحظة أن هذه المعلمة تتجاوز قيمة المهلة المحددة باستخدام الدالة $.ajaxSetup(). تبدأ مهلة الانتظار في اللحظة التي يتم فيها استدعاء الأسلوب $.ajax() .

    تقليدي.

    النوع: منطقي.
    إذا كنت تخطط لاستخدام خيارات التسلسل التقليدية (مناسبة للاستخدام في السلسلة عنوان URLطلب أو طلب اياكس)، ثم قم بتعيين قيمة هذه المعلمة إلى true .

    النوع (الافتراضي: "يحصل").

    النوع: سلسلة.
    اسم مستعار لمعلمة الطريقة. يجب عليك استخدام النوع إذا كنت تستخدم الإصدارات jQuery قبل 1.9.0.

    عنوان URL (الافتراضي: الصفحه الحاليه).

    النوع: سلسلة.
    خط يحتوي على عنوان URLالعنوان الذي تم إرسال الطلب إليه.

    اسم المستخدم.

    النوع: سلسلة.
    اسم المستخدم الذي سيتم استخدامه مع XMLHttpRequest في الاستجابة لطلب مصادقة الوصول HTTP.

    xhr (الافتراضي: ActiveXObject، عندما تكون متاحة ( متصفح الانترنت)، وفي حالات أخرى XMLHttpRequest .

    النوع: وظيفة ().
    رد الاتصال لإنشاء كائن XMLHttpRequest. باستخدام هذه المعلمة، يمكنك تجاوز كائن XMLHttpRequest لتوفير التنفيذ الخاص بك.

    xhrFields.

    النوع: كائن عادي.
    كائن يحتوي على أزواج field_name:field_value التي سيتم تعيينها لكائن XHR. على سبيل المثال، يمكنك تحديد ما إذا كان يجب إنشاء الطلبات عبر النطاقات باستخدام بيانات الاعتماد مثل بسكويتأو رؤوس التفويض أو شهادات TLS: $.ajax(( url : "cross_domain_url ", // العنوان الذي سيتم إرسال الطلب إليه xhrFields : ( withCredentials: true // مدعوم في jQuery 1.5.1 + ) ) );