none
Как бороться с ajax err 500 RRS feed

  • Вопрос

  • Всем доброго времени суток! 

    На стороне клиента, javascript код, с периодичностью обращается к серверу и подтягивает данные в формате Json, затем их обрабатывает.

    Иногда от сервера приходить сообщение "ajax 500 internal server error", и все последующие ajax-запросы отваливаются с точно такой же ошибкой. Если обновить страницу(F5), то связь с сервером налаживается и запросы опять выполняются. Если на сообщение об ошибке не обращать внимание, то они будут накапливаться и спустя таймаут сессия на сервере закрывается.

    Подскажите пожалуйста, как восстановить связь с сервером без обновления страницы?

    // Пример ajax блока:
    function oneT() 
        {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "Main.aspx/getTagValue",
                dataType: "json",
                success: function (response) {
                    for (var i = 0; i < response.d.length; i++) {
                        setValueTag(response.d[i][0], response.d[i][1], response.d[i][2], response.d[i][3]);
                    }
                }
            });
        }
        setInterval(oneT, 5000);


    19 марта 2013 г. 10:12

Ответы

  • Нужно искать проблемы в серверном коде, в методе который отвечает на ваш запрос, так как ошибка оттуда.
    • Предложено в качестве ответа YatajgaEditor 24 марта 2013 г. 16:31
    • Помечено в качестве ответа Abolmasov DmitryModerator 26 марта 2013 г. 15:42
    19 марта 2013 г. 10:56
    Модератор
  • В крайнем случае, как воркэраунд - можно в методе ajax добавить обработчик события ошибки (error), в котором попробовать с помощью javascript обновить страницу.

    Но как вам уже посоветовали - ищите ошибку в методе на стороне службы, оберните код в try-catch, логируйте возникающие ошибки.


    Для связи [mail]

    21 марта 2013 г. 8:43
    Модератор

Все ответы

  • Нужно искать проблемы в серверном коде, в методе который отвечает на ваш запрос, так как ошибка оттуда.
    • Предложено в качестве ответа YatajgaEditor 24 марта 2013 г. 16:31
    • Помечено в качестве ответа Abolmasov DmitryModerator 26 марта 2013 г. 15:42
    19 марта 2013 г. 10:56
    Модератор
  • Ок, спасибо=)

    Пришел к такому же выводу. Вот только отследить ошибку пока не удается=)

    19 марта 2013 г. 11:33
  • Если серверный код ваш, то запустите в режиме отладки. При возникновении исключения отладчик сам остановится на нужном куске кода.
    19 марта 2013 г. 11:36
    Модератор
  • Код мой=) Вот просто подобное исключение может появиться как и спустя 20 минут работы проекта, так и отработать сутки без единой ошибки.

    Но спасибо за идею, попробую помониторить ошибку.

    • Изменено wUI 20 марта 2013 г. 2:34
    20 марта 2013 г. 2:05
  • Тогда нужно посмотреть логи сервера и IIS, там ошибка пишется. Посмотрите и отпишитесь.
    20 марта 2013 г. 6:08
    Модератор
  • В режиме отладки приложение отработало без ошибок 24 часа.=) Сейчас просмотрю лог-файлы.
    21 марта 2013 г. 4:43
  • В крайнем случае, как воркэраунд - можно в методе ajax добавить обработчик события ошибки (error), в котором попробовать с помощью javascript обновить страницу.

    Но как вам уже посоветовали - ищите ошибку в методе на стороне службы, оберните код в try-catch, логируйте возникающие ошибки.


    Для связи [mail]

    21 марта 2013 г. 8:43
    Модератор