Что такое ajax error

I have an ajax call passing data to a page which then returns a value. I have retrieved the successful call from the page but i have coded it so that it raises an error in the asp. How do i retrieve

The required parameters in an Ajax error function are jqXHR, exception and you can use it like below:

$.ajax({
    url: 'some_unknown_page.html',
    success: function (response) {
        $('#post').html(response.responseText);
    },
    error: function (jqXHR, exception) {
        var msg = '';
        if (jqXHR.status === 0) {
            msg = 'Not connect.n Verify Network.';
        } else if (jqXHR.status == 404) {
            msg = 'Requested page not found. [404]';
        } else if (jqXHR.status == 500) {
            msg = 'Internal Server Error [500].';
        } else if (exception === 'parsererror') {
            msg = 'Requested JSON parse failed.';
        } else if (exception === 'timeout') {
            msg = 'Time out error.';
        } else if (exception === 'abort') {
            msg = 'Ajax request aborted.';
        } else {
            msg = 'Uncaught Error.n' + jqXHR.responseText;
        }
        $('#post').html(msg);
    },
});

DEMO FIDDLE


Parameters

jqXHR:

Its actually an error object which is looks like this

Ajax error jqXHR object

You can also view this in your own browser console, by using console.log inside the error function like:

error: function (jqXHR, exception) {
    console.log(jqXHR);
    // Your error handling logic here..
}

We are using the status property from this object to get the error code, like if we get status = 404 this means that requested page could not be found. It doesn’t exists at all. Based on that status code we can redirect users to login page or whatever our business logic requires.

exception:

This is string variable which shows the exception type. So, if we are getting 404 error, exception text would be simply ‘error’. Similarly, we might get ‘timeout’, ‘abort’ as other exception texts.


Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are deprecated as of jQuery 1.8. To prepare
your code for their eventual removal, use jqXHR.done(), jqXHR.fail(),
and jqXHR.always() instead.

So, in case you are using jQuery 1.8 or above we will need to update the success and error function logic like:-

// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax("some_unknown_page.html")
    .done(function (response) {
        // success logic here
        $('#post').html(response.responseText);
    })
    .fail(function (jqXHR, exception) {
        // Our error logic here
        var msg = '';
        if (jqXHR.status === 0) {
            msg = 'Not connect.n Verify Network.';
        } else if (jqXHR.status == 404) {
            msg = 'Requested page not found. [404]';
        } else if (jqXHR.status == 500) {
            msg = 'Internal Server Error [500].';
        } else if (exception === 'parsererror') {
            msg = 'Requested JSON parse failed.';
        } else if (exception === 'timeout') {
            msg = 'Time out error.';
        } else if (exception === 'abort') {
            msg = 'Ajax request aborted.';
        } else {
            msg = 'Uncaught Error.n' + jqXHR.responseText;
        }
        $('#post').html(msg);
    })
    .always(function () {
        alert("complete");
    });

Содержание:

  • .ajaxError( handler )

    • .ajaxError( handler )
  • Обсуждение
  • Примеры

.ajaxError( handler )Возвращает: jQuery

Описание: Регистрирует обработчик, который вызывается при завершении Ajax запросов с ошибкой. Является Ajax событием.

  • Добавлен в версии: 1.0.ajaxError( handler )

    • handler

      Функция которая будет вызвана.

Всякий раз при завершении Ajax запроса с ошибкой, jQuery инициирует ajaxError событие. Все обработчики зарегистрированные при помощи метода .ajaxError() будут выполнены в этот момент. Заметка: Этот обработчик не будет вызван для кросс-доменных скриптов и кросс-доменных JSONP запросов.

Для наблюдения этого метода в действии, установим обработчик и вызовем Ajax load запрос:

1

2

3

<button class="trigger">Trigger</button>

<div class="result"></div>

Добавляем обработчик события к document:

1

2

3

$( document ).ajaxError(function() {

$( ".log" ).text( "Triggered ajaxError handler." );

Теперь, выполняем Ajax запрос при помощи одного из методов jQuery:

1

2

3

$( "button.trigger" ).on( "click", function() {

$( "div.result" ).load( "ajax/missing.html" );

Когда пользователь кликает по кнопке и Ajax запрос завершается ошибкой, потому что запрашиваемый файл отсутсвует, сообщение показывается внутри элемента с классом log.

Все обработчики ajaxError будут выполнены, независимо от того как Ajax запрос был завершен. Если Вам нужно различать запросы между собой, то используйте параметры передаваемые в функцию обработчик. Каждый раз когда обработчик ajaxError выполняется, ему передается объект события (event), объект XMLHttpRequest (с версии jQuery выше 1.5, the XHR object) и объект настроек (ajaxSettings) используемый для создания запроса. Когда возникает HTTP ошибка, четвертый аргумнт (thrownError) передаст текстовое обозначение HTTP статуса, такие как «Not Found» или «Internal Server Error.» Например, Вы можете ограничить функцию обратного вызова при обработке события связанного с конкретным URL:

1

2

3

4

5

$( document ).ajaxError(function( event, jqxhr, settings, thrownError ) {

if ( settings.url == "ajax/missing.html" ) {

$( "div.log" ).text( "Triggered ajaxError handler." );

Примечание:

  • Начиная с версии jQuery 1.9, все обработчики для глобальных Ajax событий, включая добавленные методом .ajaxComplete(), должны быть прикреплены к to document.
  • Если $.ajax() или $.ajaxSetup() вызваны с параметром global равным false, то обработчики .ajaxComplete() не будут вызваны.

Примеры использования

Improve Article

Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    The ajaxError() method in jQuery is used to specify function to be run when an AJAX request fails.

    Syntax:

    $(document).ajaxError( function(event, xhr, options, exc) )

    Parameter:: This method accepts single parameter function which is mandatory. This function accepts four parameters which are listed below:

    • event: This parameter holds the event object.
    • xhr: It holds the XMLHttpRequest object.
    • options: It contains the used options in AJAX request.
    • exc: It holds the JavaScript exception.

    The demo.txt file stored on server and it will load after clicking the change content button.
    demo.txt

    This is GFG.

    Example 1: This example changes the content of <p> element, by taking the data from server. When the AJAX request fails due to an error, the page says AJAX request fails..

    <!DOCTYPE html> 

    <html

        <head

            <script src

            </script

            <script

                $(document).ready(function() {

                    $(document).ajaxError(function() {

                        alert("AJAX request fails.");

                    });

                    $("button").click(function() {

                        $("#paragraph").load("demo.txt");

                    });

                });

            </script

        </head

        <body style="text-align:center;"

            <div id="div_content"

                <h1 style = "color: green;">

                    GeeksforGeeks

                </h1

                <p id = "paragraph" style= "font-size: 20px;">

                    A computer science portal for geeks

                </p

            </div

            <button>

                Change Content

            </button

        </body

    </html>                    

    Output:

    Example 2: This example changes the content of <h1> element, by taking the data from server. When the AJAX request fails due to an error, the page says AJAX request fails..

    <!DOCTYPE html> 

    <html

        <head

            <script src=

            </script

            <script

                $(document).ready(function() {

                    $(document).ajaxError(function() {

                        alert("AJAX request fails.");

                    });

                    $("button").click(function() {

                        $("#heading").load("demo.txt");

                    });

                });

            </script

        </head

        <body style="text-align:center;"

            <div id="div_content"

                <h1 id = "heading" style = "color: green;">

                    GeeksforGeeks

                </h1

                <p style= "font-size: 20px;">

                    A computer science portal for geeks

                </p

            </div

            <button>

                Change Content

            </button

        </body

    </html>                    

    Output:

    • Связанные категории:
    • Ajax
      » Global Ajax Event Handlers

    Returns: jQuery

    Прикрепляет функцию, которая выполнится каждый раз при неудачном ajax-запросе.

    • version added: 1.0.ajaxError( handler(event, jqXHR, ajaxSettings, thrownError) )


      .ajaxError( handler(event, jqXHR, ajaxSettings, thrownError) )

      Тип: функция

      Функция, которая будет вызвана.

    Каждый раз, когда ajax запрос будет выполняться неудачно, jQuery вызовет событие ajaxError. В этот момент выполняются все обработчики события зарегистрированные через метод .ajaxError(). Данный обработчик не запускается при вызове кросс-доменных скриптов, а так же кросс-доменных JSONP запросов.

    Для проверки работы данного метода в действии, можно создать простой Ajax запрос.

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

    Прикрепление события к документу:

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

    Далее, делаем Ajax запрос с помощью jQuery:

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

    После клика по кнопке с классом trigger и неудачном ajax запросе (из-за отсутствия файла), будет отображено лог сообщение.

    Начиная с jQuery 1.8, метод .ajaxError() нужно прикреплять только к document.

    Все обработчики события ajaxError запускаются после неудачного Ajax запроса. Для того, чтобы отличить множественные запросы, можете воспользоваться дополнительными параметрами, переданными в функцию-обработчик. В функцию обработчик передаётся объект события, объект jqXHR, а так же объект настроек ajax запроса. При возникновении HTTP ошибки, её текстовой статус (пр. «Not Found», «Internal Server Error») будет записан в четвёртый аргумент. К примеру, выполняем функционал в зависимости от настроек URL на который был сделан Ajax запрос:

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

    Дополнительные заметки:

    • Метод .ajaxError() не сработает если при вызове $.ajax() или $.ajaxSetup() в настройке global стоит значение false.

    Пример:

    Показать сообщение при неудачном Ajax запросе.

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

    Связанные уроки:

    • Используем jQuery. 15 советов.

      В данном уроке приводится 15 рекомендаций по работе с библиотекой jQuery. Описанные методы помогают эффективно использовать мощный инструмент разработчика.

    Понравилась статья? Поделить с друзьями:
  • Что такое acmon error
  • Что такое a javascript error occurred in the main process как исправить
  • Что такое 9999 network error
  • Что такое 502 bad gateway как исправить на телефоне
  • Что такое 443 ошибка