2013-11-28 150 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

相關問題