gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:30:32 24 4
gpt4 key购买 nike

我的第一个单独的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com