2013-11-28 118 views
1

我一直在使用angularjs开发前端的RESTAPI当我尝试写一个删除使用$资源就会给我下面的错误方法删除没有被访问控制允许的方法允许误差

方法删除Access-Control-Allow-Methods不允许。

+0

所以更新...没有你想的服务器连接到支持删除? – Makoto

+0

@Makoto是的,它支持DELETE。当我使用谷歌高级休息客户端,并通过它发送相同的API调用,它工作正常。 – madu

+0

REST API是否公开?如果是这样,你可以提供它进行测试吗? – Chickenrice

回答

0

我也做与棱角分明的东西,但我希望这可以帮助你。这里是一个解决方案: 首先在你的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.. :) 
-1

你不能访问删除,因为它不允许从服务器,那么:1。 你可以改变,当你的RESTAPI的所有者 2.看在API的更多信息,文档,如何到达你的目标

here是一个不错的职位,这tobic

+0

哇,哇,哇。不是你在想什么。这是在讨论如何对服务进行RESTful调用,这在JavaScript中完全可行。 – Makoto

+0

当然,但他的服务器不允许DELETE作为方法,这也在我的帖子的链接中描述,所以他可以理解为什么这不会为他工作 ....我编辑我的帖子;) –

+0

我已经通过api文档说它允许DELETE。当我使用谷歌高级休息客户端发送相同的API调用它工作得很好 – madu

相关问题