Ошибка Angular 2 JWT AuthHttp 401 не обнаружена

У меня есть эта функция в Angular 2, которая хорошо работает в обычных условиях:

private callGetUserService(url: string, id: string): Observable<any> {
 return this.authHttp.get(url + id)
   .map(res => {
     return this.extractData(res);
   })
   .catch((err) => {
     console.log('Error getting account: ' + JSON.stringify(err));

     return Observable.of(err);
   });
  }

Когда я вызываю ответ 401 с сервера, catch(err) всегда возвращает err.status = 0 и err.ok = false. Я в полной растерянности, кто-нибудь может помочь?


person Yannick Desjardins    schedule 25.01.2017    source источник
comment
Кто-нибудь, помогите пожалуйста!   -  person Yannick Desjardins    schedule 27.01.2017
comment
возможно, немного поздно, но что возвращается, когда вы смотрите на сетевую активность в консоли?   -  person trees_are_great    schedule 18.10.2017


Ответы (1)


С ограниченной предоставленной информацией лучшая помощь, которую я могу предоставить, состоит в том, чтобы предположить, что это может быть связано с неудачным предварительным запросом CORS, который происходит только при принудительном ответе 401.


Почему это мое предположение?

В основном потому что:

Статус ответа об ошибке CORS = 0

Кажется, что всякий раз, когда запрос CORS терпит неудачу, возвращаемый ответ всегда равен 0.

https://stackoverflow.com/questions/27145287/angularjs-http-get-returns-error-with-status-0

У вас проблемы с контролем доступа HTTP (CORS).


Также обратите внимание, что лучший способ устранения проблем, связанных с HTTP, — это посмотреть на фактически выполняемые HTTP-запросы. В браузере вы быстро добьетесь этого, используя инструменты разработчика, и это моя рекомендация. Проверьте необработанные HTTP-запросы и посмотрите, что происходит по-другому, что может вызвать проблему, с которой вы столкнулись.

person João Angelo    schedule 31.01.2017