首页 文章

即使我启用了cors,PUT和DELETE requets也无法在Web API 2中运行

提问于
浏览
0

我有一个angularjs网络应用程序 . 我已将这个web api集成在那里 . Get和Post请求正在运行,但是当我尝试放入和删除请求时出现错误:

无法加载资源:服务器响应状态为405(方法不允许)/#/ Delete:1 XMLHttpRequest无法加载http://abc.example.net/api/employees/3 . 请求的资源上没有'Access-Control-Allow-Origin'标头 . 因此不允许原点'http://example.net'访问 . 响应具有HTTP状态代码405 .

我在WebApiConfig中编写了以下代码 .

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services
                 var cors = new EnableCorsAttribute("http://example.net", "*", "*");
                 config.EnableCors(cors);

        // Configure Web API to use only bearer token authentication.
                    config.SuppressDefaultHostAuthentication();
                    config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

1 回答

  • 0

    使用DynamicPoliceProviderFactory类将所有子域添加到CORS策略或将EnableCorsAttribute的第一个参数更改为*以允许所有Origins .

相关问题