Angular 带有参数的 httpclient get 没有到达我的 web api 方法
Angular httpclient get with params is not arriving at my web api method
晚上,所以我的(.net core)网络中有以下方法api
[HttpGet("GetAllMediaWithTag")]
public IActionResult GetAllMediaWithTag(Dictionary<string, string> tags)
{
我的 Angular 前端有这个
getAllContentWithTag(): Observable<Item> {
let params = new HttpParams();
params = params
.set('country', 'Japan');
return this.http.get<Item>(this.url, {params: params})
}
我已经用 postman 测试了我的网络api,一切似乎都运行良好。
正文中的一小段 json 正确识别为我的字典标签参数。
但是,当我尝试对 getAllContentWithTag 函数执行相同操作时,它不起作用。就好像签名不匹配一样。
请帮忙。
更新:
我是个傻瓜,我一直在检查我的控制台,发现 angular 创建了一个查询字符串。这不是我的网站 api 所接受的内容。
我还按照你们的建议添加了属性。
您需要告知您的参数将在查询参数中。在你的情况下,你的后端需要它来自 body.
要做到这一点,您必须将 FromQuery
属性添加到您的参数。
[HttpGet("GetAllMediaWithTag")]
public IActionResult GetAllMediaWithTag([FromQuery] Dictionary<string, string> tags)
{}
晚上,所以我的(.net core)网络中有以下方法api
[HttpGet("GetAllMediaWithTag")]
public IActionResult GetAllMediaWithTag(Dictionary<string, string> tags)
{
我的 Angular 前端有这个
getAllContentWithTag(): Observable<Item> {
let params = new HttpParams();
params = params
.set('country', 'Japan');
return this.http.get<Item>(this.url, {params: params})
}
我已经用 postman 测试了我的网络api,一切似乎都运行良好。 正文中的一小段 json 正确识别为我的字典标签参数。
但是,当我尝试对 getAllContentWithTag 函数执行相同操作时,它不起作用。就好像签名不匹配一样。
请帮忙。
更新:
我是个傻瓜,我一直在检查我的控制台,发现 angular 创建了一个查询字符串。这不是我的网站 api 所接受的内容。 我还按照你们的建议添加了属性。
您需要告知您的参数将在查询参数中。在你的情况下,你的后端需要它来自 body.
要做到这一点,您必须将 FromQuery
属性添加到您的参数。
[HttpGet("GetAllMediaWithTag")]
public IActionResult GetAllMediaWithTag([FromQuery] Dictionary<string, string> tags)
{}