带有正文的 Angular HttpClient Get 方法

标签 angular angular-httpclient

我正在改进现有的 API,要求是提供一个可以接受多个搜索条件并根据这些条件执行查询的单一获取方法。

我正在使用 Spring MVC。获取方法签名:

@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 标准,即使它可能有效,您也一定会召唤一些神秘的恶魔。

关于带有正文的 Angular HttpClient Get 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54164149/

相关文章:

angular - "TypeError: element[' 在 ios 设备上动画 '] is not a function"错误,升级到 Angular v13 后

typescript - Angular 2 下载文件 : corrupt result

angular - 添加查询参数到http请求时出错

Angular 6 : How to get response status code

javascript - Angular:刷新浏览器页面后无法重新加载数据

angular - Angular 7 中名称错误的表单控件没有值访问器

angular - 从 API 服务 Angular 4 获取数据

angular - 如何通过 angular-cli 配置 Angular 2 环境设置?

angular - 在 Angular 中下载文件时无法获取进度和文件

javascript - Angular 6 : HttpHeaders Cannot read property 'length' of null in Chrome and IE11 (and not in Firefox)