在Angular 7应用程序上,我正在调用服务:
this.messageService.send(model).pipe(
catchError(err => {
console.log('Error:', err);
return err;
}),
map((response: Response) => {
console.log(response);
})
);
服务方法调用API:
public send(model: Model): Observable<Response> {
const headers: HttpHeaders = new HttpHeaders();
headers.set('Content-Type', 'application/x-www-form-urlencoded');
console.log(model);
return this.httpClient.post<Response>>(`send`, model, { headers: headers });
}
执行model
时,我可以在控制台上看到console.log(model);
但是我在API上遇到的断点不会触发,并且在catchError
中没有任何错误。
API操作是ASP.NET Core 2.2。如下:
[HttpPost("send")]
public async Task<IActionResult> Send([FromBody]Model model) {
return Ok();
}
注意:
在同一应用程序上,我可以将httpClient
与get
方法一起使用而不会出现问题。
不确定我缺少什么。有想法吗?
更新
我将Angular服务代码更改为:
public send(model: Model): Observable<Response>> {
const headers: HttpHeaders = new HttpHeaders();
headers.set('Content-Type', 'application/json');
console.log(model);
return this.httpClient.post<Response>>(`send`, JSON.stringify(model), { headers: headers });
}
仍然无法正常工作。
这是一个Angular问题,因为我刚刚用Postman发布了JSon数据。
它使用Postman进行工作,没有任何形式的身份验证/授权。
答案 0 :(得分:1)
尝试在Visual Studio上查看输出窗口。也许有一些有关该问题的信息。 验证控制器是否具有AthorizationAttribute。 验证Content-Type”,“ application / x-www-form-urlencoded”,然后尝试将其更改为“ Content-Type”:“ application / json”