Проблема с обработкой исключений при отправке данных с помощью ajax с jQuery - PullRequest
0 голосов
/ 04 октября 2009

я получил следующую часть одной из функций

        if(continiueSend)
        {
            $.ajax
            ({
                type: "POST",
                url: "mailer.php",
                data: "somestestdata",
                timeout: 5000,
                success: function(a) 
                {
                    alert(a);
                },
                error: function (xhr, ajaxOptions, thrownError)
                {
                    alert(xhr.status);
                    alert(thrownError);
                }    
            });
        }

И он прекрасно работает, когда с сервером все в порядке, запрошенные данные отправляются менее чем за 100 мс, в случае, когда я выключаю сервер, он также отлично работает, скрипт сообщает об ошибках, как и ожидалось, но есть проблема, когда сервер занят

Когда время отправки данных превышает лимит, установленный с помощью «timeout:», обработка ошибок, как указано в «error:», не запускается, и в консоли появляется следующая информация

необработанное исключение: [Exception ... »Компонент возвратил код ошибки: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS аноним :: строка 252 "данные: нет]

Строка 252 является первой строкой упомянутого кода. Я попытался поместить код в скобки IF в try ... catch, но безрезультатно.

Как я могу правильно обнаружить это исключение, чтобы обработать его так, как я хочу?

MTH

1 Ответ

1 голос
/ 04 октября 2009

Вы уверены, что обратный вызов ошибки на самом деле не вызывается? Поместите блок try-catch внутри функции ошибки. Помните, это называется асинхронно. Блок try-catch вне этого ничего не сделает. Вероятно, исключение вызвано, когда вы пытаетесь прочитать ошибку.

...