我有一个 ASP.NET Web Api v2 Web 应用程序,我正在尝试启用 CORS,以便我可以从不同服务器上的客户端调用 API。
我正在关注位于 here 的教程并谈到将以下代码行添加到 WebApiConfig.cs
App_Start
中的文件文件夹 ...
var cors = new EnableCorsAttribute("http://localhost:5901", "*", "*");
config.EnableCors(cors);
问题是我没有
WebApiConfig.cs
在 App_Start 目录中。我在 Startup.cs
中完成了大部分配置和路由Web 应用程序根目录中的文件。我不记得曾经使用过 WebApiConfig.cs
文件。这个代码我可以添加到Startup.cs
吗? ?
最佳答案
你的问题的答案很简单:是的,你可以。
唯一重要的是您将设置应用于相同的 HttpConfiguration
然后您将传递给 app.UseWebApi()
的实例扩展方法。WebApiConfig.cs
只是由默认 Web API 模板创建的样板文件,用于将 Web API 配置与其他配置文件分开。如果您打算只使用 Owin,那么您可以简单地忽略它。
[编辑] 示例代码,在您的 Startup.cs
中Configuration
方法:
var config = new HttpConfiguration();
var cors = new EnableCorsAttribute("http://localhost:5901", "*", "*");
config.EnableCors(cors);
app.UseWebApi(config);
回复评论,如果您使用
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
那么您将在比 Web API 更高的级别设置 CORS header ,并且您将不需要使用 EnableCorsAttribute
根本。您的情况的主要区别在于 CorsAttribute
您将对 CORS header 进行精分割级配置(例如,您可以为每个 Action 方法设置不同的 CORS header )。只要记得放
app.UseCors
在您的 Configuration
中的任何其他 Owin 中间件之前方法。
关于asp.net - App_Start 中缺少 WebApiConfig.cs。我可以使用 Startup.cs 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606324/