一尘不染

在Web API 2中启用CORS

c#

我有客户端和服务器在不同的端口上运行。服务器正在运行 Web API 2(v5.0.0-rc1)

我尝试安装Microsoft ASP.NET Web
API跨域支持包,
并在中启用了它WebApiConfig.cs。它提供了我的EnableCors()功能,因此该软件包已正确安装。

在这里,您可以看到我的Register()功能WebApiConfig.cs

public static void Register(HttpConfiguration config)
{
    config.MapHttpAttributeRoutes();

    var cors = new EnableCorsAttribute("*", "*", "*");
    config.EnableCors(cors);
}

GET请求工作正常。但是在发送时POST,我得到以下信息:

OPTIONS http://localhost:19357/api/v1/rooms? 404 (Not Found) angular.js:10159
OPTIONS http://localhost:19357/api/v1/rooms? Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin. angular.js:10159
XMLHttpRequest cannot load http://localhost:19357/api/v1/rooms. Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin.

根据Fiddler的说法,它仅发送OPTIONS请求。POST以后不发行。

所以我猜config.EnableCors(cors);WebApiConfig.cs没有做任何事情,这导致服务器拒绝客户端/浏览器发送一个POST请求。

您有解决该问题的想法吗?

编辑05.09.13 这已在5.0.0-rtm-130905中修复


阅读 220

收藏
2020-05-19

共1个答案

一尘不染

我绝对可以通过属性路由来解决这个问题这个问题固定为5.0.0-RTM-130905的。但是,您仍然可以尝试每晚进行的构建,这些构建肯定会修复。

要将夜间添加到您的NuGet软件包源中,请转到Tools -> Library Package Manager -> Package Manager Settings并在以下网址中添加以下URL Package Sourceshttp :
//myget.org/F/aspnetwebstacknightly

2020-05-19