带有正文和 header 的 Angular 7 post 请求

标签 angular rest spring-boot

我正在尝试使用正文和 header 执行发布请求。以下是我经历过的一些变化,但大多数情况下,我在服务器上收到错误消息,指出参数“key”未传入。

我在 postman 中尝试了这个 api,它在那里工作。这就是我在 Java/Spring Boot 中定义方法头的方式:

@RequestMapping(value = "/getIssue", method = RequestMethod.POST)
public IssuePojo getIssue(@RequestParam("key") String key, HttpServletRequest request) {

以下是我的 Angular 变化:

public getJiraIssue(key: string): Observable<any> {

    let headers = new HttpHeaders({
      'Content-Type': 'application/json',
      'Authorization': this.idToken });
    let options = { headers: headers };

    const paramsA = new URLSearchParams();
    paramsA.set('key', key);
    let params = new HttpParams().append('key', key);
    // return this.http.post(this.urlEnvironment.jiraGetIssue(), params, this.getHeaders());
    console.log("headers: ", this.getHeaders());
    // let obj = {
    //   key: key
    // }

    var headersA = new Headers();
    headers.append('Authorization', this.idToken);

    let body = new HttpParams()
    .set('key', key);

    return this.http.post(this.urlEnvironment.jiraGetIssue(), body, {headers: headers});
    // return this.http.post(this.urlEnvironment.jiraGetIssue(), null, {headers: this.getHeaders(), params: params});
  }

看来正文正在发送:

enter image description here

但这就是我得到的错误:

timestamp: "2019-01-30T04:30:40.721+0000", status: 400, error: "Bad Request",…}
error: "Bad Request"
message: "Required String parameter 'key' is not present"
path: "/jira/getIssue"
status: 400
timestamp: "2019-01-30T04:30:40.721+0000"
trace: "org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'key' is not present

最佳答案

HttpParams() 用于将查询字符串参数添加到请求 URL(如果需要),然后首先检查是否已将其添加到所发出的开发人员工具请求中,如果存在,则 api 端出现问题

关于带有正文和 header 的 Angular 7 post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54433364/

相关文章:

Angular2 - react 形式和多个复选框行为不正确

javascript - Angular $http POST 无法绑定(bind)数组

java - 在捕获模式下使用hoverfly时出现x509错误

spring-boot - Liquibase 正在尝试执行之前已经执行过的变更集,因此抛出该表已经存在的错误

java - 如何在不同的类(class)中启动和停止计时器?

angular - 如何修复 "Error: Expected to be running in ' ProxyZone',但未找到。” 在 mocha 测试中?

javascript - 如何使用 Angular Material 在下拉列表中创建 TreeView ?

php - 从 Android 应用程序在线访问 MySQL 哪一个更好? RESTful Web 服务还是异步任务?

javascript - Angular 2.x 观察变量变化

java - 记录 Jersey rest api 的