角度http帖子未到达后端

问题描述

我正在尝试向Web-api控制器发出一个简单的发布请求,该请求的主体中有一个字符串而不是一个对象,我设法从邮递员那里毫无问题地进行了调用,并且设置如下: 网址类似于: http:/// api //?id = 111 正文(原始)有一个简单的字符串,例如:“ 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);
    
}   

我在做什么错了?

解决方法

您的return语句位于HTTP选项obj

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);
}  
,

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