【发布时间】:2018-01-19 05:23:23
【问题描述】:
我想在 Asp.net Web Api 中的一项特定操作上启用 CORS。以下是我的尝试:
[Route("api/mycontroller/myaction")]
[HttpPost]
[EnableCors("https://example.com", "*", "post")]
public async Task<IHttpActionResult> MyAction()
{
...
}
但是当我向路由发送 OPTIONS 请求时,我收到一个错误:“请求的资源不支持 http 方法 'OPTIONS'。”我也尝试删除 [HttpPost] 注释无济于事。 我错过了什么?
【问题讨论】:
-
嗯,您是否尝试过仅将请求作为 POST 而不是 OPTIONS 发送?我认为当您发出 CORS 请求时,浏览器会在后台为您执行 OPTIONS 内容(不过我可能弄错了)。
-
POST 请求本身可以工作,但是浏览器首先发送一个 OPTIONS 请求并且失败了,所以它永远不会发送 POST。
-
[EnableCors("example.com", "*", "post, options")]?告诉操作接受 OPTIONS 请求以及 POST
-
相同。如果我将 [HttpOptions] 注释与 [HttpPost] 一起添加,我不会收到错误消息,但它会尝试执行操作方法并需要授权。 EnableCors 应该响应 OPTIONS 请求。
标签: c# asp.net-web-api cors