【问题标题】:Web API CORS DeleteWeb API CORS 删除
【发布时间】:2014-06-16 16:50:09
【问题描述】:

我正在使用 Angular JS + CORS + Web API。我能够为 GET、POST 和 PUT 发出 HTTP 请求。但是,我在请求“DELETE”时遇到错误。

"请求的资源不支持 http 方法 'DELETE'。" 我的网络 api 代码是:

public void Delete(int id)
        {
            //code to remove data from DB.
        }

我的 WebApiConfig 类有以下设置

public static void Register(HttpConfiguration config)
    {
        config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

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

public IEnumerable<Entity> Get()
    {
        return <List<Entity>>;
    }

我的客户代码是:

   $http({
        method: 'DELETE',
        url: 'http://example.com/api/<controller>/',
        data: {id :uId}
    }).success(function (data, status) {
        aleert('success');
    }).error(function (data, status) {
        alert('error');
    });

    $http({
        method: 'GET',
        url: 'http://example.com/api/<controller>'
    }).success(function (data, status) {
        alert('success');
    }).error(function (data, status) {
        alert('error');
    });

我错过了什么?非常感谢任何帮助。

【问题讨论】:

  • 能否添加 GET 的 web api 代码和 GET 调用的客户端代码?
  • 这是我的 GET Web API 代码: public IEnumerable Get() { return > } 这是客户端对 GET 的调用:$http({ method: 'GET' , url: 'X-Domain-site here ie example.com/api/action' }).success(function (data, status) { // 在这里执行你的操作 }).error(function (data, status) { alert('error' ); });如果您希望修复特定错误,请告诉我,以便我可以分享我的摘录。
  • 能否请您编辑您的问题并将代码放在那里
  • 完成。如果您需要任何帮助,请告诉我。

标签: angularjs asp.net-web-api cors


【解决方案1】:

你必须把 http 动词放到你的 Delete 方法中:

[HttpDelete]
public void Delete(int id)
{
    //code to remove data from DB.
}

【讨论】:

  • 我试过这样做。我仍然有同样的错误。我的 web.config 中也有以下设置,没有任何帮助
猜你喜欢
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 2021-09-02
  • 2015-01-06
  • 2015-04-16
  • 2016-10-07
  • 2017-05-31
相关资源
最近更新 更多