C# 启用跨域ASP.net Web API

C# 启用跨域ASP.net Web API,c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,我有用于Web的Microsoft Visual Studio Express 2013,版本12.0.30501.00更新2。我有一个包含两个项目的解决方案,一个是web api,第二个是用于视图的MVC项目。我已经创建了一个返回httpresponsemessage的简单web api,我可以进入fiddler,我将看到json响应。然而,在我的第二个项目中,当试图通过ajax调用时,我收到了一个跨域错误 我试图遵循的解决方案是这样的。但是,在console manager中安装Instal

我有用于Web的Microsoft Visual Studio Express 2013,版本12.0.30501.00更新2。我有一个包含两个项目的解决方案,一个是web api,第二个是用于视图的MVC项目。我已经创建了一个返回httpresponsemessage的简单web api,我可以进入fiddler,我将看到json响应。然而,在我的第二个项目中,当试图通过ajax调用时,我收到了一个跨域错误


我试图遵循的解决方案是这样的。但是,在console manager中安装
Install包Microsoft.AspNet.WebApi.Cors-pre-project-WebService
时,我收到一个错误,因此使用了这一行<代码>安装包Microsoft.AspNet.WebApi.Cors然后我尝试下一步,即
config.EnableCors()它的状态是

'System.Web.Http.HttpConfiguration' does not contain a definition for 'EnableCors' and no extension method 'EnableCors' accepting a first argument of type 'System.Web.Http.HttpConfiguration' could be found (are you missing a using directive or an assembly reference?)

我不知道接下来要做什么,我还尝试使用System.Web.Http.Cors添加
但声明命名空间不存在。这个visual studio是大约3周前下载的,我觉得这个功能应该不难安装,因为它完全受支持,有什么我遗漏的吗?

你应该安装一个Nuget软件包Microsoft.AspNet.WebApi.Cors

从VisualStudio的菜单中,转到管理包,然后键入包的名称

注意:

要从软件包管理器控制台安装,请使用
安装软件包Microsoft.AspNet.WebApi.Cors

安装Nuget软件包“Microsoft.AspNet.WebApi.Cors”(version=“5.1.0”)

在WebApiConfig.cs文件中添加以下行

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

包管理器中出现的错误是什么?您是否尝试过通过GUI安装此NuGet软件包?您运行的是哪个.NET版本?框架是4.5.50938,没有。我没有尝试通过NuGet通过GUI安装它,它确实安装了。我必须从命令行安装它,因为它不会显示在列表中。install-package Microsoft.AspNet.WebApi.Cors