2015-08-19 57 views
1

我試圖讓使用Restangular一個CORS POST請求以下列方式JSON數據對象:Restangular | CustomPOST:我無法做CORS POST請求,在體內

//data is a json object 
var urlToPost = '/api/deal/update/'+dealId; 
return Restangular.all(urlToPost).customPOST(data, '', {}, { 
        "Content-Type": "application/json", 
        "Access-Control-Allow-Origin": "*", 
        "Access-Control-Allow-Methods": "POST, GET, PUT, DELETE, OPTIONS" 
         }); 

當我打了電話,在控制檯上出現以下錯誤:

XMLHttpRequest cannot load http://55.76.122.145:8080/hulk/api/deal/update/55cd93bd20ce9744aeebff3a. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9001' is therefore not allowed access. 

和網絡選項卡上,我可以看到一個successful電話與status 200OPTION方法被解僱。

如何去呢?我究竟做錯了什麼 ?

回答

2

錯誤信息闡明瞭這一點給你:

否「訪問控制允許來源」標頭出現在所請求的資源。因此'Origin'http://localhost:9001'不允許訪問。

服務器必須響應與包括Access-Control-Allow-Origin頭,告訴該網站提供JavaScript的被允許接入的瀏覽器響應 OPTION請求。

Access-Control-Allow-OriginAccess-Control-Allow-Methods不是請求標題。您無法編寫允許自己從其他人的網站讀取數據的JavaScript。那會很愚蠢。

+0

所以,我需要在服務器端進行更改,不是嗎?但是我從OPTION調用中獲得了200個狀態成功響應。這並不意味着服務器端的一切都很好嗎? –

+1

「所以,我需要在服務器端進行更改,不是嗎?」 - 是的。 「但是我從OPTION調用中獲得了200個狀態成功響應,這是不是意味着服務器端的一切都好?」 - 這意味着就服務器而言,一切都很好。瀏覽器然後會「哦,服務器並沒有說我有權給予一些其他網站的迴應」,所以我不會。 – Quentin