【问题标题】:Enabling Cross Domain ASP.net Web API启用跨域 ASP.net Web API
【发布时间】:2014-05-19 19:49:36
【问题描述】:

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

我尝试遵循的解决方案是http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api。但是,在控制台管理器中安装 Install-Package Microsoft.AspNet.WebApi.Cors -pre -project WebService 时,我收到了一个错误,所以我改用了这一行。 Install-Package 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?)

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

【问题讨论】:

  • 您在包管理器中遇到的错误是什么?您是否尝试过通过 GUI 安装此 NuGet 包?
  • 您运行的是什么 .NET 版本?
  • 框架是 4.5.50938,不,我没有尝试通过 gui 通过 nuget 安装它,它确实被安装了

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


【解决方案1】:

您应该安装 Nuget 包 Microsoft.AspNet.WebApi.Cors

从 Visual Studio 的菜单中,转到 Management Packages,然后输入包的名称

注意:
要从 Package Manager Console 安装,请使用 Install-Package Microsoft.AspNet.WebApi.Cors

【讨论】:

  • 我必须从命令行安装它,因为它不会显示在列表中。
  • 安装包 Microsoft.AspNet.WebApi.Cors
  • 然后:使用 System.Web.Http.Cors
【解决方案2】:

安装 Nuget 包 `"Microsoft.AspNet.WebApi.Cors" (version="5.1.0")

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

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

【讨论】:

    猜你喜欢
    • 2016-12-21
    • 2023-03-09
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 2014-06-13
    • 1970-01-01
    • 2014-02-21
    相关资源
    最近更新 更多