【问题标题】:Method DELETE is not allowed by Access-Control-Allow-Methods errorAccess-Control-Allow-Methods 错误不允许方法 DELETE
【发布时间】:2013-12-14 03:24:34
【问题描述】:

当我尝试使用 $resource 编写 DELETE 时,我已经使用 angularjs 开发了一个 RESTAPI 的前端,它会给我以下错误

Access-Control-Allow-Methods 不允许方法 DELETE。

【问题讨论】:

  • 那么...您尝试连接的服务器是否支持 DELETE?
  • @Makoto 是的,它支持删除。当我使用谷歌高级休息客户端并通过它发送相同的API调用时它工作正常。
  • REST API 是公开的吗?如果是这样,你能提供它进行测试吗?

标签: angularjs


【解决方案1】:

我也在做一些有角度的事情,但我希望这可以帮助你。这是一个解决方案: 首先必须在您的 API web.config 文件中更新

<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="OPTIONS,GET,POST,PUT,DELETE" />

In `ApiController`

[HttpDelete]
public string Delete() 
{ 
return "u call delete"; 
} 

public HttpResponseMessage Options() { 
     var response = new HttpResponseMessage(); 
     response.StatusCode = HttpStatusCode.OK; 
return response; 
}


In Angular...

        home.post().then(function (data) {
            console.log(data);
        });

        home.remove().then(function (data) {
            console.log(data);
        });

Out Put...

> u call delete

Hope this will help you.. :)

【讨论】:

    【解决方案2】:

    您无法访问 DELETE,因为它不允许来自服务器,因此: 1.当你是restapi的所有者时,你可以改变它 2. 查看 API 的文档以获取更多信息,了解如何实现您的目标

    here 是这个话题的好帖子

    【讨论】:

    • 哇,哇,哇。不是你想的那样。这是关于对服务进行 RESTful 调用,这在 JavaScript 中完全可以做到。
    • 当然,但是他的服务器不允许 DELETE 作为方法,这也在我的帖子的链接中进行了描述,所以他可以理解为什么这对他不起作用 ....i编辑了我的帖子;)
    • 我已经浏览了它说允许删除的 api 文档。当我使用谷歌高级休息客户端发送相同的 API 调用时,它工作得很好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2017-01-11
    • 2017-04-18
    • 2013-12-07
    • 2017-07-02
    • 2019-09-29
    相关资源
    最近更新 更多