2014-03-02 18 views
1

我使用AngularJS Restangular做一個POST到我已經http://www.mockable.ioRestangular POST返回訪問控制

我的代碼是非常簡單的創建一個模擬的REST API ...

RestangularProvider.setBaseUrl("http://demo1461049.mockable.io"); 


var newBranch = {"test":"test"} 

var branches = Restangular.all("branches"); 

branches.post(newBranch); 

第一我注意到的問題是它正在執行OPTIONS請求而不是POST請求。我看到有人說這是因爲它正在執行一個CORS請求(本地主機到mockable.io)。我沒有弄清楚CORS是如何工作的,但我設置了Mocakable,所以它會接受OPTIONS。我現在得到以下錯誤...

Request header field Content-Type is not allowed by Access-Control-Allow-Headers. 

我已經看到了這個錯誤的線程數,但他們都是從人試圖創建自己的API(通常ASP.NET)。這是我需要設置的選項,但不能,因爲Mockable不允許您?這看起來很奇怪,因爲Mockable的重點在於你對它進行了跨域請求。

任何幫助真的不勝感激。

回答

2

您收到的錯誤是服務器響應。除非你可以編輯服務器允許的關於CORS的內容。

我沒有使用mockable自己,但他們似乎有CORS支持,所以如果他們沒有編輯CORS頭文件的選項,我會感到驚訝。

的CORS實現我有一個私人API,它是最常見的頭一個例子:

CORS_ALLOW_HEADERS = (
'x-requested-with', 
'content-type', 
'accept', 
'origin', 
'authorization', 
) 

查找mockable和您的家庭安全

+0

感謝喬金 - 類似的東西。我不認爲Mockable有能力設置標題,但我發現了一個叫做ForceCORS的擴展名,它幫助我解決了這個問題。 – jonhobbs

+0

僅供參考,mockable.io已更新以解決此問題。見:http://t.co/kf0L7RS5VC –