sks*_*laj 5 c# cors asp.net-web-api
因此,我遵循了以下教程:
他们每个人都描述了为控制器启用EnableCors的方法,也可以按全局添加。
我遵循了所有这三个步骤中概述的步骤,在我的App_Start / WebApiConfig.cs文件中输入了以下内容:
public static void Register(HttpConfiguration config)
{
config.EnableCors();
config.Routes.MapHttpRoute(
name: "Default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { controller = "", action = "Get" }
);
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我添加了:
[EnableCors(origins: "http://localhost:50247", headers: "*", methods: "*")]
public class TestController : ApiController
{ ... }
Run Code Online (Sandbox Code Playgroud)
但是当我去运行程序时,它给了我以下错误:
XMLHttpRequest无法加载http:// localhost:49705 / api / Test / GetTestData。所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问源' http:// localhost:50247 '。
但是,当我在App_Start / WebApiConfig.cs中添加以下内容以使EnableCors遍及整个应用程序时:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
var cors = new EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*");
config.EnableCors(cors);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
有效。但是如果使我的api控制器上经过修饰的EnableCors属性无效。
当我从apicontroller中删除[EnableCors]属性时:
public class TestController : ApiController
{ ... }
Run Code Online (Sandbox Code Playgroud)
因为我在全球范围内所做的工作,所以它奏效了。为什么会发生这种情况?从webapi 5.2.2升级到5.2.3时是否发生错误?
该项目是Visual Studio 2013中使用asp.net webapi启动模板创建的新项目。
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |