我正在使用angularjs-1.5.0编写我的应用程序。
我创建了一个使用$ resource从api服务器获取数据的服务。该服务称为MyApi。
(function () {
angular.module('myalcoholist').factory('MyApi', ['$resource', '$auth', function ($resource, $auth) {
return $resource('https://myalcoholist.com:8888/drink/:cmd',
null, {
pouringSpeedTypes: {
method: 'GET',
params: {api_token: $auth.getToken(), cmd: 'get_pouring_speed_types'},
isArray: true
},
pouringLocationTypes: {
method: 'GET',
params: {api_token: $auth.getToken(), cmd: 'get_pouring_location_types'},
isArray: true
}
});
});
}]);
})();
在我的控制器中,我使用以下代码使用此服务:
MyApi.pouringLocationTypes().$promise.then(function(data) {
console.info(data);
});
MyApi.pouringSpeedTypes().$promise.then(function (data) {
console.info(data);
});
问题是数据是......我猜的承诺。 这是数据包含的内容:
$promise: d
$resolved: true
length: 0
__proto__: Array[0]
我该怎么办?如何从get请求中获取实际数据?
答案 0 :(得分:0)
感谢您的评论,您允许我查明问题。
首先,我没有更新我的服务器代码,这就是为什么当你尝试这些地址时你得到方法不允许。
我遇到的问题是这些请求确实返回了空数组。
所以首先我的API返回一个json对象而不是一个数组,所以我将isArray更改为false。
所以在那之后并实际修复我的API服务器,这就是我收到的:
$promise: d
$resolved: true
data: Array[4]
success: true
我的API服务器返回一个包含数据和成功的json。所以事情正在发挥作用!非常感谢。