2015-07-05 3 views
1

Запуск моего углового приложения без запуска сервера должен возвращать ошибку или курс. Но это «ERR_CONNECTION_REFUSED» Я вижу в консоли моего Хрома вызывает мою функцию успеха моей службы членства:

function login(user, onSuccess, onError){ 
     $http.post(_loginAddress, user) 
      .success(loginSuccess) 
      .success(onSuccess) 
      .error(loginError) 
      .error(onError); 
    } 
    function loginSuccess(data) { 
     // this code executes with data = null here. 
     if (data.ok === true) { 
      ... 
     } 
    } 
    function loginError(data, code) { 
     ... 
    } 

Соответствующий раздел из $http docs состояний:

код состояния ответа от 200 до 299 считается статусом успеха и приведет к вызову обратного вызова успеха. Обратите внимание, что если ответ является перенаправлением, XMLHttpRequest будет прозрачно следовать ему, что означает, что обратный вызов ошибки не будет вызван для таких ответов.

Должен ли я запрограммировать функции $ http success() для возможного ложноположительного?

EDIT

enter image description here

+0

Невозможно воспроизвести: http://plnkr.co/edit/lnz7DUL6G0G9bEONvH4q?p=preview. Откройте консоль: вы увидите ошибку «ERR_CONNECTION_REFUSED», но вы также увидите, что вызывается обратный вызов ошибки, а не обратный вызов успеха. –

+0

Спасибо JB за попытку воспроизвести его. Я добавил скриншот того, что я вижу в своей собственной среде. Я действительно не знаю, как я его получаю. – Droritos

ответ

3

Так .. Я пошел на охоту и обнаружил, что один из моих перехватчиков (аутентификация) была причиной этого ERR_CONNECTION_REFUSED ошибочного ответа следует рассматривать как «выздоровел» и, следовательно, функция успеха назывался.

Я изменил это:

if (response.status !== 401) { 
    return response; 
} 

Для этого:

if (response.status !== 401) { 
    return $q.reject(response); 
} 

И все нормально снова.

Надеюсь, это может помочь кому-то еще.

Смежные вопросы