在将CORS与Web Api一起使用时,必须使用属性路由

时间:2015-05-08 15:27:30

标签: asp.net-web-api cors asp.net-mvc-routing attributerouting

我在我的web api应用程序中启用了CORS。我有API控制器,既有经典的REST函数名称,如Get()和Get(字符串id),也有一个带有自定义函数名称的控制器,例如: [HTTPGET] GetSomeThing()

我有像这样配置的路线

config.EnableCors();
config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

                config.Routes.MapHttpRoute(
        name: "ApiById",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
        );

通过这种安排我得到一个错误No' Access-Control-Allow-Origin'当我尝试使用Classic REST函数调用控制器时,会出现标题。

e.g。 / API /控制器

如果我在路由之后采取行动而没有​​采取行动,它会在使用自定义函数名称的控制器调用上给出相同的错误。

e.g。 / API /控制器/功能

我有

    [EnableCorsAttribute("http://localhost:xxxx", "*", "*")]
两个控制器上的

属性。我需要使用属性路由吗?

请注意,这些调用是通过角度应用程序进行的。

善意的建议。

0 个答案:

没有答案