1

我是 AngularJS 的新手。我有一个在 IIS 服务器上运行的 .net MVC WebAPI Restful 应用程序。当我使用http://xxx.xxx.xxx.xxx/api/project查询 api 时, 我得到:

[{"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

我觉得奇怪的是,当我查看 firebug 时,它不会执行 get 而是显示状态为 200 的 Option 项目

我不确定我错过了什么。

4

2 回答 2

1

您的评论中提到的错误“错误:a.push 不是函数”是因为您的响应是一个数组。使用,当您的响应是数组时$resource使用该函数。query

于 2013-07-09T17:47:16.657 回答
0

我认为资源调用的第一个参数应该是基于资源的参数。如果没有,则传递一个空对象{}作为第一个参数:

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

我的猜测是您的err对象实际上是成功返回的数据。如果我错了,告诉我,我会删除!

于 2013-07-09T16:43:13.707 回答