我试图通过从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