【发布时间】:2016-10-17 06:37:55
【问题描述】:
我的 Web api 上的端点有问题。我有一个 POST 方法不工作,原因是:
对预检请求的响应未通过访问控制检查:否 'Access-Control-Allow-Origin' 标头出现在请求的 资源。因此不允许使用原点“http://localhost:3000” 使用权。响应的 HTTP 状态代码为 405。
我不明白为什么这不起作用,因为我有很多方法确实适用于相同的 COSR 配置。唯一的区别是这个方法有一个指定的路由,如下所示:
// POST: api/Clave
[EnableCors(origins: "*", headers: "*", methods: "*", SupportsCredentials = true)]
[Route("{id:int}/clave")]
[HttpPost]
public HttpResponseMessage Post(int id, [FromBody]CambioClaveParameters parametros)
{
UsuarioModel usuario = SQL.GetUsuario(id);
if (Hash.CreateMD5(parametros.ViejaClave) != usuario.Clave.ToUpper())
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
else if (Hash.CreateMD5(parametros.ViejaClave) == usuario.Clave.ToUpper())
{
SQL.ModificarClaveUsuario(id, Hash.CreateMD5(parametros.NuevaClave));
return Request.CreateResponse(HttpStatusCode.OK);
}
else
{
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
}
关于为什么会发生这种情况的任何想法?
谢谢!
【问题讨论】:
-
CORS 是否适用于 this 控制器中的其他方法?
-
我建议您使用prefix.io 来检查是否有问题。
标签: c# asp.net asp.net-web-api cors