2013-07-09 38 views
1

我是AngularJS的新手。我有一個.net MVC WebAPI Restful應用程序運行在IIS服務器上。當我查詢的API與http://xxx.xxx.xxx.xxx/api/project我得到:AngularJS不工作

[{"Id":1,"Name":"Glenn Block","Created":"0001-01-01T00:00:00"},{"Id":2,"Name":"Dan Roth","Created":"0001-01-01T00:00:00"}] 

我創建了一個ProjectCtrl(在一個單獨的空項目),看起來像這樣:

angular.module('Project', ['ngResource']); 

function ProjectCtrl($scope, $resource) { 
    $scope.project = $resource('http://192.168.1.221/api/project' 
    ); 
    $scope.project.get(function (data) { 
     console.log('success, got data: ', data); 
    }, function (err) { 
     alert('request failed'); 
    }); 
} 

我總是失敗。我解決的服務器上CORS問題和請求頭中包含

Access-Control-Request-He... x-requested-with 
Access-Control-Request-Me... GET 

我感到奇怪的是,當我看着螢火蟲它不會做一個GET而是顯示的狀態爲選擇項目200

我不知道我錯過了什麼。

+1

get中的第一個參數是否需要是空的{}對象?如果是這樣,你(回調)'回調實際上是你返回的數據。只是一個猜測。 – rGil

+0

我只是試過這個,沒有改變。然而,我做到了,將這些行添加到ProjectCtrl的頂部... var myApp = angular.module('Project',['ngResource']); myApp.config([ '$ httpProvider',函數($ httpProvider){ $ httpProvider.defaults.useXDomain = TRUE; 刪除$ httpProvider.defaults.headers.common [ 'X-請求-隨着']; }]); ,它現在得到了,我看到的數據。我在控制檯出現錯誤 - 錯誤:a.push不是函數 – Jeff

+0

Bummer,如果錯誤,我會刪除答案。不希望這個問題得不到解決。 – rGil

回答

1

您的評論中提到的錯誤「錯誤:a.push不是函數」是因爲您的響應是一個數組。使用$resource時,當您的響應是一個數組時,請使用query函數。

+0

謝謝,這使得err消失。 – Jeff

0

我認爲資源調用的第一個參數應該是基於資源的參數。如果你沒有,傳遞一個空對象{}作爲第一個參數:

$scope.project.get({},function (data) { 
    console.log('success, got data: ', data); 
}, function (err) { 
    alert('request failed'); 
}); 

我的猜測是,你err對象實際上是成功返回的數據。如果我錯了,告訴我,我會刪除!