c# - Angular 中的 HTTP 响应提供 200 但从未到达服务器
问题描述
我们有一个在 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。
解决方案
我已经设法解决了这个问题,我想分享解决方案:
我们在后端使用了一个名为 AssetsController 的控制器,不知何故,对这个名称的所有请求都从未发送过,并且仍然得到 HTTP 200 响应。当我们更改控制器的名称时,一切正常。
它不起作用的确切原因尚不清楚,但我们很高兴我们可以解决这个问题。
感谢所有一直帮助我的人!
此致,
丹尼尔
推荐阅读
- python - 如何使用模型的功能?
- javafx - Controlsfx 属性的项目顺序
- windows - Powershell WMIC 无法在 Windows 10 上卸载 Dreamweaver 错误 1603
- javascript - 如何根据内部数组中的特定条件过滤其中包含数组的数组
- django - Django 数据库结构,如何处理来自 Facebook 等两种不同模型的 slug?
- java - Java Spring 引导控制器@RequestParam 给出错误“所需的字符串参数'名称'不存在”
- python - 如何在 Anaconda Prompt 中更改默认 conda 环境?
- node.js - npm install 失败并出现 apt-get update 错误 - 以下签名无效:XYZ
- django - Django 将模型的某个元素的某些字段设为只读
- linux - 嵌入式 Linux 设备的 SCEP 客户端