我有一个简单的角度资源,我已经定义如下:
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端点。
有人可以帮忙吗?我无法在网上任何地方找到报告此问题的人。
答案 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>