簡體   English   中英

Angular5上的http.post

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM