jQuery 3.3

.ajaxError()




jquery

.ajaxError (معالج) العودة: jQuery

الوصف: تسجيل معالج ليتم استدعاؤه عندما يطلب Ajax إكمال مع وجود خطأ. هذا هو حدث أجاكس .

عند اكتمال طلب Ajax مع وجود خطأ ، يقوم jQuery بتشغيل الحدث ajaxError . يتم تنفيذ أي وكل معالجات تم تسجيلها باستخدام طريقة .ajaxError() في هذا الوقت. ملاحظة: لا يتم استدعاء هذا المعالج للنص البرمجي عبر النطاقات وطلبات JSONP عبر النطاقات.

لمراقبة هذه الطريقة في العمل ، قم بإعداد طلب تحميل أياكس الأساسي.

<button class="trigger">Trigger</button>
<div class="result"></div>
<div class="log"></div>

إرفاق معالج الحدث بالمستند:

$( document ).ajaxError(function() {
  $( ".log" ).text( "Triggered ajaxError handler." );
});

الآن ، قم بعمل طلب Ajax باستخدام أي طريقة jQuery:

$( "button.trigger" ).on( "click", function() {
  $( "div.result" ).load( "ajax/missing.html" );
});

عندما ينقر المستخدم فوق الزر ويفشل طلب Ajax ، لأن الملف المطلوب مفقود ، يتم عرض رسالة السجل.

يتم استدعاء كافة معالجات ajaxError بغض النظر عن اكتمال طلب Ajax. للتمييز بين الطلبات ، استخدم المعلمات التي تم تمريرها إلى المعالج. في كل مرة يتم فيها تنفيذ معالج ajaxError ، يتم تمريره إلى كائن الحدث ، كائن jqXHR (قبل jQuery 1.5 ، كائن XHR ) ، وكائن الإعدادات الذي تم استخدامه في إنشاء الطلب. عند حدوث خطأ HTTP ، يتلقى الوسيطة الرابعة ( thrownError ) الجزء النصي لحالة HTTP ، مثل "لم يتم العثور على" أو "خطأ خادم داخلي". على سبيل المثال ، لتقييد رد الاتصال الخطأ لمعالجة الأحداث التي تتناول عنوان URL معين فقط:

$( document ).ajaxError(function( event, jqxhr, settings, thrownError ) {
  if ( settings.url == "ajax/missing.html" ) {
    $( "div.log" ).text( "Triggered ajaxError handler." );
  }
});

ملاحظات إضافية:

  • اعتبارًا من jQuery 1.9 ، يجب إرفاق document بجميع معالجات الأحداث العالمية لـ .ajaxError() jQuery ، بما في ذلك تلك التي تمت إضافتها باستخدام طريقة .ajaxError() .
  • إذا تم $.ajax() أو $.ajaxSetup() مع الخيار global لتعيين false ، لن يتم إطلاق الأسلوب .ajaxError() .

مثال:

عرض رسالة عند فشل طلب Ajax.

$( document ).ajaxError(function( event, request, settings ) {
  $( "#msg" ).append( "<li>Error requesting page " + settings.url + "</li>" );
});