我有以下控制器,当我使用属性路由时,CORS无效。
第一种方法没有任何问题。 在第二种方法中,我遇到跨域错误。 如果我删除路由属性,那么它可以工作
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class ExampleController : ApiController
{
[HttpGet]
[AllowAnonymous]
public IHttpActionResult Get(string id)
{
return Ok();
}
[HttpGet]
[AllowAnonymous]
[Route("api/example/Details/{id}")]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public IHttpActionResult Details(string id)
{
return Ok();
}
}
知道可能出现什么问题吗?我的WebApiConfig如下所示
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "ExampleRoute",
routeTemplate: "api/example/{id}",
defaults: new { controller = "Example", id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "ApiRouteWithAction",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.EnableCors();
}
}