javascript - Angular 帖子未按预期提供请求正文

标签 javascript spring angular http-post

我的第一个单独的 Angular 应用程序...

我正在尝试发布到我的全新网络服务并使用以下代码:

  headers = new HttpHeaders(
    {'Content-Type':'text/plain'}
  );
  loginUrl = "http://localhost:8093/login";

  login(credentials): Observable<String> {
    const body = new HttpParams()
      .set('payload', 'testing...');

    let bodyValue = body.toString()
    return this.http.post<String>(this.loginUrl, body,{headers: this.headers})
  }

我的 Spring Boot 应用程序抛出异常,因为在获取帖子时,请求中缺少有效负载参数。

我在 Firefox 浏览器中打开了 Web 开发人员网络面板,并看到以下 View :

enter image description here

起初,我认为这是我的 spring 端的错误配置,但我运行了一个curl:

  curl --data "payload=testing" http://localhost:8093/login

这很好地进入了我的网络服务。所以 Angular 编码我的参数的方式有些问题。

我找到了这个页面:https://github.com/angular/angular/issues/19535 ,但不确定是否相关。

最佳答案

http.post 的第二个参数是内容正文。您可以通过这种方式传递 URL 参数:

const urlParams = new HttpParams()
  .set('payload', 'testing...');

 return this.http.post<String>(`${this.loginUrl}?${urlParams}`, '',{headers: this.headers});

如果要将 url 参数传递到正文中,则:

  login(credentials): Observable<String> {
    const body = new HttpParams()
      .set('payload', 'testing...');

    let bodyValue = body.toString()
    return this.http.post<String>(this.loginUrl, bodyValue,{headers: this.headers})
  }

关于javascript - Angular 帖子未按预期提供请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48340072/

相关文章:

javascript - 访问数组值返回 'undefined' ,但我可以使用 console.dir() 查看这些值?

javascript - 展平数组并查找相应值并写入新数组

Spring @Cacheable 不工作-我的配置有什么问题?

angular - onbeforeunload 确认对话框在使用 angular2 @HostListener 时不显示

javascript - 当图像悬停并跟随鼠标时显示 AJAX div

javascript - 尝试向 Canvas 文本添加颜色渐变

java - 为什么在将 CGLIB 原型(prototype)注入(inject) Singleton 的情况下,每次对原型(prototype)的访问都会创建一个新对象?

java - Spring - 将传入日期视为 UTC

java - Spring Boot-Angular - 在地址栏中输入 URL 会导致 404

angular - 我可以将多个转换属性添加到 "Angular Animations"中的一个状态吗