【发布时间】:2017-11-10 18:42:45
【问题描述】:
我的 Web Api 核心控制器方法是这样的
public void Post(Sample sample) {
_sampleService.CreateSample(sample);
}
示例 POCO 看起来像这样
public class Sample : BaseEntity
{
public string BarCode { get; set; }
public DateTime CreatedAt { get; set; }
public virtual User CreatedBy { get; set; }
public virtual Status Status { get; set; }
}
客户端示例对象目前仅发送 2 个属性,如下所示。
{barcode:"1234"createdAt:"2017-06-07"}
http 帖子看起来像这样
createSample(sample: Sample) {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post(AppConstants.createSample, JSON.stringify(sample), { headers: headers })
.map((res: Response) => res.json()); }
所以如果我使用标题,我会得到 No 'Access-Control-Allow-Origin' header is present
如果我不使用标题,我会得到(不支持的媒体类型)
知道这里发生了什么。 更新 所以我按照第一个答案中的说明进行操作,看起来 CORS 未设置属性,但现在 JSON 未转换为 C# 对象
【问题讨论】:
-
看起来是 CORS 问题。
-
不是 CORS 问题,其余调用正常。 CORS 已全局启用
标签: javascript angular asp.net-web-api http-post