我試圖通過從Angular2向http Web API端點執行http post來插入記錄。在Angular中,對象包含數據,但是當它到達端點時,沒有數據。它是空的。你能通過這段代碼看到我做錯了什麼嗎?使用POST從Angular2發送時Web API對象爲空
角:
public addBook (body: Object): Observable<Book[]> {
let bodyString = JSON.stringify(body); //stringify payload
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
// post request to create new book
return this._http.post(this.actionUrl,bodyString,options)
.map((res:Response) => res.json())
.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}
的ASP.NET Web API
// POST: api/Books
[System.Web.Http.HttpPostAttribute]
[HttpOptions]
[ResponseType(typeof(Book))]
public async Task<IHttpActionResult> PostBook(Book book)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Books.Add(book);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = book.Id }, book);
}
不完全一樣。該示例使用Promise而不是Observable。雖然可能是同一個問題,我不確定。 – Rich