HTTP Response в Angular дает 200, но никогда не достиг сервера - PullRequest
1 голос
/ 27 марта 2019

У нас есть веб-приложение на Angular 6, которое использует NGXS для управления состоянием.

У нас есть один конкретный вызов на наш сервер, с которым у нас проблемы.Все остальные звонки с почти таким же кодом не имеют проблем.В наших средах разработки это работает без проблем.

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

https://i.imgur.com/JspJXrb.png (у меня недостаточно репутации, чтобыопубликуйте изображения, извините)

Как вы можете видеть в ответе здесь, URL-адрес пуст, все тестовые параметры не являются частью ответа.

Регистрация на сервере, похоже, никогда не достигаетконтроллер, ни он не имеет исключения.Fiddler, он никогда не показывает, что общается с API.

protected getEntities(viewContext: ViewContext, entityQuery: TEntityQuery, pagingContext: PagingContext): Observable<QueryResult<TEntity[]>> {

    const params = this.requestUtilsService.getHttpParams(entityQuery, viewContext, pagingContext);

    this.logger.log('sending entity query with params', params);

    const entitiesUrl = this.getEntitiesUrl();

    return this.http.get<TEntity[]>(entitiesUrl, { params: params, observe: 'response' }).pipe(
      map(resp => this.responseUtilsService.getQueryResult(resp))
    );
  }

Я ожидаю список объектов или ошибку сервера.Я ожидаю, что машинописный код свяжется с API.

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Мне удалось решить проблему, и я хотел бы поделиться решением:

Мы использовали контроллер в бэкэнде под названием AssetsController, так или иначе все запросы на это имя никогда не отправлялись и все еще получалиHTTP 200 ответ.Когда мы изменили имя контроллера, все заработало как надо.

Точная причина, по которой он не работал, неизвестна, но мы рады, что смогли это решить.

Спасибо всемкто помог мне!

С уважением,

Даниил

0 голосов
/ 27 марта 2019

Вы добавляете подписку в http.get ()? Наблюдаемые Rxjs ленивы в том смысле, что они выполняют значения только тогда, когда что-то подписывается на это. Они не выполняют запрос, пока не получат подписку.

С https://angular.io/guide/http: «Метод HttpClient не начинает свой HTTP-запрос до тех пор, пока вы не вызовете subscribe () для наблюдаемой, возвращаемой этим методом» *

...