【问题标题】:angular http post not reaching the backend角度 http 帖子未到达后端
【发布时间】:2020-09-15 22:59:23
【问题描述】:

我正在尝试向 web-api 控制器发出一个简单的发布请求,其中正文中有一个字符串,而不是一个对象。我设法从邮递员那里调用它,没有任何问题,并且设置如下: 网址类似于: http:///api//?id=111 Body (raw) 有一个简单的字符串,例如:“aaa”,它被定义为 JSON。 这是我的代码(忽略错别字 - 它是手写的): 这是 web-api 控制器:

[Route("Update")]
[HttpPost]

public bool UpdateData([FromQuery] int id, [FromBody] string content)
{
    DoAomwthing();
}

这是我的角码:

updateData(id :number, content : string) : Observable<boolean>
{
    const httpOptions = 
    {
        headers: new HttpHeaders({'Content-Type':'application/json'}),
        params: new HttpParams().set('id', '1')
    }
        return this.httpClient.post<boolean>(<some base url> + 'UpdateData', content, httpOptions);
    
}   

我做错了什么?

【问题讨论】:

  • 您的内容类型是application/json,但您发送的是字符串?我不认为你可以发布一个字符串,你不应该发送一个对象吗?我也不会把 id 放在查询的形式中,而是作为路由的一部分而不是 [Route("Update/{id}")] 然后更改方法读取为UpdateData([FromRoute] int id...

标签: angular http-post content-type


【解决方案1】:

你在 HTTP 选项 obj 中有你的 return 语句

updateData(id :number, content : string) : Observable<boolean>
{
    const httpOptions = 
    {
        headers: new HttpHeaders({'Content-Type':'application/json'}),
        params: new HttpParams().set('id', '1')
    }

     return this.httpClient.post<boolean>(<some base url> + '/UpdateData', content, httpOptions);
}  

【讨论】:

  • @krimov -抱歉,打错了
【解决方案2】:

找到根本原因 - 内容应该已经转换为 json 字符串,因为这是定义内容类型的方式(尽管 json 是在常规字符串而不是对象中进行这样的更改,但仍然)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2023-03-25
    • 2017-11-11
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多