我有一个.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);
}