Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.05.2014, 20:16
Новичок на форуме
Отправить личное сообщение для enot Посмотреть профиль Найти все сообщения от enot
 
Регистрация: 19.05.2014
Сообщений: 1

Как правильно обработать ajax запрос ?
Пытаюсь протестировать вариант возникновения ошибки на сервере при отправке ajax запроса

собственно сам запрос:

$.ajax({
            url  : this.opt.saveAllUrl,
            type : 'POST',
            data : data,
            success : function (response) {
                var data = $.parseJSON(response);
                alert('success');
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
                //that.errorCommentHandler();
            }
        }).fail(function() {
            alert( "error" );
        });


на сервере формирую ответ:

$response = array('error' => true, 'message' => 'some message', 'trace' => 'trace');
json_encode($response);

но как бы я не старался, не error() ни fail() в js не вызываются, как правильно сформировать ответ чтобы попать в метод fail()
или как обработать ответ на стороне клиента если 'error' => true ?
Ответить с цитированием
  #2 (permalink)  
Старый 19.05.2014, 21:16
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

А, собственно, с чего тут должна произойти ошибка? response - это обычная строка. Ты представляешь в PHP ассоциативный массив в виде JSON-строки, передаешь эту строку браузеру, браузер в функции success преобразует JSON-строку в javascript-объект и выдает success. То есть, передавая response, ты ничем не управляешь, ты просто передаешь response. Это обычный текст, который затем можно обработать каким угодно образом, не более того.

Если хочешь, чтобы скрипт на стороне браузера кинул ошибку при том условии, что свойство error объекта, полученного разбором JSON-строки response равно true - так и делай.
success: function (response) {
  var data = $.parseJSON(response);
  if (data.error)
    throw new Error(data.message);
}

Последний раз редактировалось Erolast, 19.05.2014 в 21:22.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно отслеживать вставку html() bombascter jQuery 15 20.11.2012 09:47
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14
Как повесить проверку на ajax запрос? Randomizer jQuery 10 24.09.2010 12:20
Как правильно обработать событие? BAnder Events/DOM/Window 19 03.02.2009 14:09
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19