我的第一个单独的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})
}
我的春季启动应用程序正在抛出异常,因为在收到帖子时,请求中缺少有效负载参数。
我在firefox浏览器中打开了Web开发人员网络面板,并具有以下视图:
起初,我认为这是我春天的错误配置,但我跑了一个卷发:
curl --data "payload=testing" http://localhost:8093/login
这进入我的网络服务就好了。所以有一些关于Angular编码参数的方式。
我找到了这个页面:https://github.com/angular/angular/issues/19535,但不确定它是否相关。
答案 0 :(得分:2)
http.post
的第二个参数是内容正文。您可以通过以下方式传递URL参数:
const urlParams = new HttpParams()
.set('payload', 'testing...');
return this.http.post<String>(`${this.loginUrl}?${urlParams}`, '',{headers: this.headers});
如果你想将url parms传递到正文中,那么:
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})
}