Angular中的HTTP响应提供200个但从未到达服务器

时间:2019-03-27 13:39:18

标签: c# angular typescript asp.net-core ngxs

我们在Angular 6中完成了一个Web应用程序,该应用程序使用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 :(得分:0)

我设法解决了这个问题,我想分享解决方案:

我们在后端使用了一个名为AssetsController的Controller,以某种方式从未发送过对该名称的所有请求,但仍收到HTTP 200响应。当我们更改控制器的名称时,一切都会正常进行。

它不起作用的确切原因尚不清楚,但是我们很高兴可以解决这个问题。

感谢一直在帮助我的每个人!

您真诚的

丹尼尔

答案 1 :(得分:-1)

您是否将订阅添加到http.get()? Rxjs Observables是惰性的,因为它们仅在某些内容订阅时才执行值。他们直到获得订阅才执行请求。

来自https://angular.io/guide/http: “在您对该方法返回的可观察对象上调用subscribe()之前,HttpClient方法不会开始其HTTP请求”