angular - 带有正文的Angular HttpClient Get方法
问题描述
我正在改进现有的 API,要求提供一个可以接受多个搜索条件并基于这些条件执行查询的单一 get 方法。
我正在使用 Spring MVC。get 方法签名:
@GetMapping("/subscribers")
public ResponseEntity<List<SubscriberDTO>> getAllSubscribers(Pageable pageable, @RequestBody List<SearchCriteria> lstSearchCriteria)
该实现在 Postman 上按预期工作
现在我要去 Angular 实现前端,但我找不到通过 HttpClient Get 方法发送正文的方法......
我有点卡住了。我应该通过标题发送搜索条件吗?或者有更好的方法吗?
解决方案
据我所知,您不能使用 HttpClient get 发送正文。您至少可以使用该查询,因为它是惯用的。(或者您可以尝试以某种方式强制解决问题)。
假设您有一个带有您的标准的数组:
const criteria = [ {a: 25}, {b: 23} ];
http.get(url + '/?criteria='+ encodeURIComponent( JSON.stringify(criteria)));
在 GET 请求中发送正文违反了某些 RFC 标准,即使它可能有效,您也一定会召唤一些神秘的恶魔。
推荐阅读
- bash - 如何在 shell 脚本中处理 Ctrl + c?
- node.js - 如何解决平台颤振不允许的不安全http?
- webview - 联系人选择器从 WebView 中的 URL 失败,但在 android chrome 浏览器中使用相同的 URL
- java - 使用带参数的 jdbcTemplate.query
- java - 通过注释spring从数据库获取的方式有什么区别?
- apple-watch - 在 HKQuery 谓词中使用 HKSource.default() 在 watchOS 7 中无法正常工作
- powershell - AutomationFocusChangedEventHandler:在 powershell 中未触发事件
- android - 具有多进程的 Workmanager
- python - 我无法让这个反应时间测试仪将信息输出到 csv 文件
- swift - 如何将通用视图添加到 LibraryContentPrivider