【问题标题】:PUT and DELETE requets are not working in Web API 2 even I have enabled cors即使我启用了 cors,PUT 和 DELETE 请求也无法在 Web API 2 中工作
【发布时间】:2016-12-02 20:52:45
【问题描述】:

我有一个 angularjs 网络应用程序。我已经在那里集成了这个 web api。获取并发布 请求正在工作,但是当我尝试放置和删除请求时,它给出了一个错误:

加载资源失败:服务器响应状态为 405(不允许方法) /#/Delete:1 XMLHttpRequest 无法加载http://abc.example.net/api/employees/3。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,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 }
        );
    }
}

【问题讨论】:

    标签: asp.net-web-api2


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 2013-12-06
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      • 2020-05-11
      • 2021-11-19
      相关资源
      最近更新 更多