![](/img/trans.png)
[英]How can i set a simple string value returned from http.post to a variable in Angular5
[英]http.post on Angular5
Angular 5我正在尝试构建一个函数,该函数使用Angular在我的API上创建资源。 在我的employee.service.ts文件中,我有一个名为“ saveEmployee”的方法,该方法由Employee.componenet.ts上的函数“ addEmployee”调用。页。 这是addEmployee函数:
addEmployee(model) {
this.loading = true;
model.contractorId = parseInt(model.contractorId);
this.employeeService.saveEmployee(model)
.subscribe(
data => {
console.log('saved successfully!!!');
return true;
},
error => {
console.error("Error creating employee!");
return Observable.throw(error);
});
}
这是saveEmployee:
saveEmployee(employee: Employee): Observable<Employee> {
let body = JSON.parse(JSON.stringify(employee));
return this.http.post(this.resourceUrl, body);
}
由于“无效的媒体类型”而失败,因为由于某种原因,推送到API的JSON对象具有以下外观:
{
firstName:"arjan",
lastName:"gjoni",
fedexId:"7777",
contractorId:20
}
如果您注意到这不是有效的JSON对象,因为属性名称不在引号中。
我将console.log()放在Json.stringify()之后的saveEmployee函数上,并且Jason对象在其中有效。 我还在addEmployee()函数上放置了console.log(),并且JSON对象很奇怪(就像文章中的那个一样)。 我还在控制台上检查了RequestPayload,其中的JSON对象也无效。
我将不胜感激任何帮助。 我正在使用Angular 5
尝试将employee
对象作为this.http.post
方法的第二个参数传递,而不是将其字符串化并解析为body对象。
Angular应该能够处理本机Javascript对象并将其正确发布到服务器。
尝试这个:
let body = JSON.stringify(employee);
return this.http.post(this.resourceUrl, body);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.