【发布时间】:2017-02-18 07:34:02
【问题描述】:
在实现 OData 端点并尝试从不同域访问时,我遇到了缺少响应标头“Access-Control-Allow-Origin”预检请求问题的错误。使用常规 api 控制器,可以添加 Access-Control-Allow-Origin 标头以使其工作(如下所示)。但是,对于 OData,我正在努力对请求标头进行此类修改。是否支持 Web API?
[EnableCors(origins: "*", headers: "*", methods: "*")]
public async Task<IHttpActionResult> Post(Movie movie)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// How to sneak in sth like below to Created method or globally: ?
// HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, movie);
// response.Headers.Add("Access-Control-Allow-Origin", "*");
await _service.AddMovie(movie);
return Created(movie);
}
浏览多个来源后,这是我发现的最好的: https://forums.asp.net/t/2032931.aspx?How+to+enable+CORS+in+Odata+NET+service+ ,只有这个是网络表单,我很难在 Web API 中重新应用它。
编辑 我关于网络表单的陈述是错误的,请参阅下面的回答
【问题讨论】:
标签: c# asp.net-web-api cors odata