在MVC Web API中应用属性路由时,EnableCors不起作用

时间:2017-09-29 13:31:20

标签: c# asp.net-mvc asp.net-web-api cors

我有以下控制器,当我使用属性路由时,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();
        }
    }

0 个答案:

没有答案