AngularJS资源中的GET调用失败 - 奇怪的数据结果

时间:2016-12-20 23:30:45

标签: angularjs rest asp.net-web-api

我有一个简单的角度资源,我已经定义如下:

CompanyService.factory('CompanyService',
    function ($resource) {
        return $resource('https://baseurl.com/api/values/');
    }
);

然后我有一个控制器调用该资源传递成功和失败函数:

.controller('companyList', function($scope, CompanyService) {
$scope.companies = CompanyService.query(
    function(data) {
        console.log(data);
        return data;
    },
    function(error){
        console.log("Error:");
        console.log(error);
    }
);

其余的API是一个非常基础的.NET MVC Web API。我已将其配置为返回JSON,它只返回两个对象的数组,如下所示。我也启用了CORS,因此我的角度应用程序可以调用api来托管在不同的域中。

[{ID:1, Name:"TEST1"}, {ID:2, Name:"TEST2"}]

我使用jquery测试了REST调用,只是通过浏览器直接调用。一切正常(包括使用直接的JavaScript HTTP调用从我的角度应用程序调用时的跨站点脚本)。

当我尝试从我的控制器调用api时,它总是在错误函数中结束。错误对象包含始终使用字符串"resource is required|resource is required|undefined"

填充的数据属性

当我检查网络时,我看不到对值终点的调用。就好像电话在制作之前失败一样。

如果我更改url指向一些示例REST api,如https://jsonplaceholder.typicode.com/users/,它工作正常,我能够在网络流量中看到对“用户”的调用,这让我觉得有一些东西我的C#REST端点出错了,但我所有的测试都是在角度工作之外成功调用REST端点。

有人可以帮忙吗?我无法在网上任何地方找到报告此问题的人。

2 个答案:

答案 0 :(得分:0)

代码应该是下面的代码吗?我没有测试它,只是猜测。

myModule.factory('CompanyService',
    function ($resource) {
        return $resource('https://baseurl.com/api/values/');
    }
)
.controller('companyList', function($scope, CompanyService) {
    CompanyService.query(
    function(data) {
        $scope.companies = data;
        console.log(data);
        return data;
    },
    function(error){
        console.log("Error:");
        console.log(error);
    }
);

答案 1 :(得分:0)

我最终从头开始重建我的角度应用程序。我的第一个应用程序来自angular-seed github,并且已经添加了一些库用于测试和其他事情。其中一个原因是导致了这个错误,因为一旦我从头开始一个新项目并添加了角度,我的REST调用就完美了。我已经花了太多时间来完成这项工作,所以不要再花时间确定它究竟是什么了,但是如果有其他人遇到这个问题,我确实想回答这个问题并关闭它。< / p>