我有一个在端口8080上运行的Asp.Net WebApi服务器,它公开了一个GET方法(让我们说IEnumerable<Friend> Get()
)。
我在端口55163上运行另一个包含AnugularJs项目的Asp.Net站点。
当我从角度控制器调用$resource('...localhost:8080/api/friends')
并显示如下数据时:
<ul>
<li ng-repeat="friend in friends">
{{friend.name}} who is {{friend.age}} years old.
</li>
</ul>
该页面未在Firefox和Chrome中显示任何列表。我注意到到目前为止IE没有问题。
我一直在检查来自Firefox的XHR请求调用,并且JSON会正确地返回给客户端。
我使用AngularJs 1.2.16和AspNet.WebApi 5.1.2
更多详情
在我的控制器中如果我这样做(不调用服务):
$scope.friends = [
{ name: 'Person1', age: 30 },
{ name: 'Person2', age: 30 }
];
范围已正确设置,但如果我这样做:
$http.get('...localhost:8080/api/friends').success(function (data) {
$scope.friends = [];
angular.forEach(data, function (item) {
$scope.friends.push(item);
});
});
或那:
var userResource = $resource('...localhost:8080/api/friends');
userResource.query({ method: 'GET', isArray: true }, function (data) {
$scope.friends = [];
angular.forEach(data, function (item) {
$scope.friends.push(item);
});
});
范围未填充...(或仅适用于Internet Explorer)
更新1
如果我把所有东西都放在同一台服务器上然后工作,我想知道它是否与CORS有关。
答案 0 :(得分:0)
检查AngularJS问题的第一个地方是浏览器控制台。通常会记录任何错误。
如果没有错误,friends
可能无法正确填充。您是否尝试过调试XHR的结果并确认结果是否已分配给朋友?