2016-01-05 26 views
0

在我的項目中,我有一個json文件,其中一個部署在本地計算機上,另一個部署在另一臺服務器上。AngularJS REST調用錯誤

這是我從角控制器調用JSON數據碼 -

function Controller($scope, $http) { 
    $http.get("http://localhost:8080/RESTCall/test.json"). 
     success(function(data) { 
      $scope.lists= data; 
     }); 
} 


function Controller2($scope, $http) { 
    $http.get("http://<Server IP>:8080/RESTCall/test.json"). 
     success(function(data) { 
      $scope.lists= data; 
     }); 
} 

這裏是我的index.html頁面,在這裏我同時使用此控制器:執行我

<div ng-controller="Controller">  
     <ul ng-repeat="list in lists"> 
      <li>    
      {{list.testdata}} 
      </li> 
     </ul>  
    </div> 


    <div ng-controller="Controller2">  
     <ul ng-repeat="list in lists"> 
      <li>    
      {{list.testdata}} 
      </li> 
     </ul>  
    </div> 

我得到來自本地機器/服務器OR的數據,但對於Controller1我收到以下錯誤:

OPTIONS http://<SERVER IP>:8080/RESTCall/test.json net::ERR_CONNECTION_REFUSED 

當我直接訪問http://<SERVER IP>:8080/RESTCall/test.json時,我能夠獲取數據。

+0

在不同的瀏覽器中嘗試。 – SjaakvBrabant

+0

@Goldenowner:我在Chrome和Firefox上試過,在兩種情況下都不工作。 –

+0

您是否已經嘗試了其他方法來修復它?例如清除緩存數據。在互聯網上有很多這個問題的修復。 您的代碼沒有問題,這是客戶端錯誤。 – SjaakvBrabant

回答

1

您正在激發跨域請求(CORS)。瀏覽器會在觸發實際的GET請求之前先觸發預購的OPTIONS請求。因此,您必須配置服務器以響應OPTIONS請求並返回適當的Access-Control- *標題。