我正在尝试将一个JSON对象从一个打字稿POST调用传递给Web API方法。 Fiddler显示该对象已转换为JSON,而Content-Type为' application / JSON'。但是在API控制器中,参数值显示为null而不是JSON。
打字稿:
createPO(product: string): Promise<string> {
var headers = new Headers();
headers.append('Content-Type', 'application/json');
let options = new RequestOptions({ headers: headers });
return this._http.post(this._creatPOUrl, JSON.stringify(product), options)
.toPromise()
.then(response => <string>response.statusText)
.catch(this.handleError);
}
Web API: [HttpPost] public async任务CreatePOInMO([FromBody]字符串产品) { 返回Ok(); }
产品包含null。 如果我从typescript(它是一个JSON)传递product对象中的实际值,它就可以工作。但我不能像这样硬编码。
我关注了这篇文章:Angular2 Service not passing JSON to WebAPI 但看起来我正在做这里提到的任何事情。
答案 0 :(得分:3)
在Angular 2中,当posting JSON with the Http client时,您不应该致电JSON.stringify
:
this._http.post(this._creatPOUrl, product, options)