Angular 中的 HTTP 响应给出 200 但从未到达服务器

HTTP Response in Angular gives 200 but never reached server

我们在 Angular 6 中完成了一个 Web 应用程序,它使用 NGXS 进行状态管理。

我们对我们的服务器有一个特定的调用,但我们遇到了问题。使用几乎相同代码的所有其他调用都没有问题。在我们的开发环境中,这没有任何问题。

我们的服务器环境和本地开发环境都使用相同的数据库。

https://i.imgur.com/JspJXrb.png(我没有足够的声誉来 post 图片,抱歉)

正如您在此处的响应中看到的那样,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.

您是否添加对 http.get() 的订阅? Rxjs Observables 是惰性的,因为它们只在某些东西订阅它时才执行值。他们在获得订阅之前不会执行请求。

来自https://angular.io/guide/http: "An HttpClient method does not begin its HTTP request until you call subscribe() on the observable returned by that method"

我已经解决了这个问题,我想分享解决方案:

我们在后端使用了一个名为 AssetsController 的控制器,不知何故,所有对此名称的请求从未发送过,并且仍然得到 HTTP 200 响应。当我们更改控制器的名称时,一切正常。

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

感谢所有帮助过我的人!

此致,

丹尼尔