我正在使用带有2个参数的http post请求并从服务获取null响应。 下面是我的角度服务的代码片段以及控制器(C#)。
我尝试了两个选项,但它们都没有工作,在这两种情况下都得到了空响应。
看起来参数不是从服务传递的,因此正确的路由不匹配...因为我尝试调试控制器...我没有看到调试器在控制器中击中方法...任何线索,因为我是什么做错了?或者我可以遵循其他任何方法吗?
Option 1 let params = new URLSearchParams();
params.append('id',bookId);
params.append('store',store);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
let body = JSON.stringify(params);
return this.http.post(this.apiUrl, body, options)
.map((res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
Option 2
let myHeaders = new Headers();
myHeaders.append('Content-Type', 'application/json');
let myParams = new URLSearchParams();
params.append('id',bookId);
params.append('store',store);
let options = new RequestOptions({ headers: myHeaders, params: myParams });
return this.http.post(this.apiUrl, options)
.map((res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
controller code
[HttpPost]
[Route("api/book/{id}/{store}")]
public IHttpActionResult GetByIdPwd(string id, string store)
{
var book = bookRepo.GetBookAvailabilityBy(id, store);
return Ok(book);
}