我想在 Asp.net Web Api 中的一项特定操作上启用 CORS。我正在尝试这样做:
[Route("api/mycontroller/myaction")]
[HttpPost]
[EnableCors("https://example.com", "*", "post")]
public async Task<IHttpActionResult> MyAction()
{
...
}
但是,当我向路由发送 OPTIONS 请求时,我收到错误:“请求的资源不支持 http 方法‘OPTIONS’。”我也尝试删除 [HttpPost] 注释,但无济于事。
我缺少什么?
对于我来说,我通过将以下代码添加到请求中来添加以下标头应用程序_开始请求的功能全局.asax.cs file:
protected void Application_BeginRequest()
{
if (Request.Headers.AllKeys.Contains("Origin", StringComparer.CurrentCultureIgnoreCase)
&& Request.HttpMethod == "OPTIONS")
{
Response.AddHeader("Access-Control-Allow-Headers", "content-type", "accept", "pragma", "cache-control", "authorization");
Response.End();
}
}
我不知道为什么会这样。
出于好奇,我尝试使用星号添加所有标头,但随后 Web API 抱怨缺少授权标头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)