2016-12-21 67 views
0

我正在用angularjs構建混合應用程序,我試圖從外部來源調用服務。但是,當我撥打電話到URL我收到錯誤無法從遠程json加載數據

XMLHttpRequest cannot load https:XXXX/xxx.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. 

這裏是我的代碼

app.controller('overview', function($scope, $http) { 
    $http({ 
     method : "GET", 
     url : "https://ysaf.XXXX.yourcxxxxx/resource.json" 
    }).then(function appSucces(response) { 
     $scope.resources = response.data; 
    }, function appError(response) { 
     $scope.resources = response.statusText; 
    }); 
}); 

如果我打電話給當地以.json文件我沒有得到任何錯誤,但是,只有當我打電話外部API,我得到這個錯誤。

有什麼我在此代碼做錯了什麼?

+0

您將需要更改服務代碼以允許跨源請求。如果這是不可能的,那麼你可以從你自己的服務器(它不會有任何交叉源問題)調用服務,然後從你的服務器爲你的應用提供json服務 – gaurav5430

+0

這應該是服務器端的處理,但你可以試試這個一個http://stackoverflow.com/a/33662315/5621827在你身邊 – jitender

+1

[Access-Control-Allow-Origin頭文件如何工作?](http://stackoverflow.com/questions/10636611/how-沒有訪問控制,允許原產地 - 頭工作) –

回答

0

Access-Control-Allow-Origin被設置在從服務器的響應,這是不是在客戶端請求,允許來自不同來源的客戶有機會獲得響應。

在這種情況下,https://ysaf.XXXX.yourcxxxxx/resource.json不允許你的出身有機會獲得響應。所以你不能讀它。