我有一个.NET API,如下

public List<long> Compare ([fromBody] String NumberOfDatasets)


我正在尝试从有角度的应用程序访问API。 GET请求工作正常,但是当我尝试发送POST请求时,它没有正文,并且API接收到null参数。

我已经通过从提琴手访问它来检查了API,并且工作正常。
我也启用了


CORS
HttpPost
HttpOptions


用于api。
标题也被正确添加,我通过Chrome开发工具进行了检查。我在这里想念什么吗?

我的角度应用程序组件的TS文件如下:

myFunction()
{
   let httpHeaders = new HttpHeaders({
     'Content-Type' : 'application/json'
   });
   let options = {
     headers: httpHeaders
   };
   return this.httpClient.post(myUrl, "5", options);
}

最佳答案

使用application/json的内容类型时,将字符串作为正文发布是不可接受的,因为
json将尝试从对象{}或数组[]进行解析。
要将单个字符串作为请求正文发送,请将内容类型更改为application/x-www-form-urlencoded并在字符串前面添加等号(=

这样尝试

myFunction()
{
   let httpHeaders = new HttpHeaders({
     'Content-Type' : 'application/x-www-form-urlencoded'
   });
   let options = {
     headers: httpHeaders
   };
   return this.httpClient.post(myUrl, "=5", options);
}

10-07 18:32