我们在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。
答案 0 :(得分:0)
我设法解决了这个问题,我想分享解决方案:
我们在后端使用了一个名为AssetsController的Controller,以某种方式从未发送过对该名称的所有请求,但仍收到HTTP 200响应。当我们更改控制器的名称时,一切都会正常进行。
它不起作用的确切原因尚不清楚,但是我们很高兴可以解决这个问题。
感谢一直在帮助我的每个人!
您真诚的
丹尼尔
答案 1 :(得分:-1)
您是否将订阅添加到http.get()? Rxjs Observables是惰性的,因为它们仅在某些内容订阅时才执行值。他们直到获得订阅才执行请求。
来自https://angular.io/guide/http: “在您对该方法返回的可观察对象上调用subscribe()之前,HttpClient方法不会开始其HTTP请求”