我正在尝试使用 Angular 创建一个使用我的 API 的简单应用程序。我正在使用虚拟机运行代码,并在我的计算机上访问它,因此要从我的机器调用 API,我可以使用 cURL 或任何其他 HTTP 客户端,一切正常。一个例子:
curl -k --user damien@email.com:password https://api.my.domain.com/v1/traveler/get
例如,这将返回一个旅行者列表。我需要“信任”证书,因为它无效。所以一开始在浏览器上调用会返回net::ERR_INSECURE_RESPONSE
,所以我只是去 API URL 并添加异常,现在我不再有这个问题了。然后我必须添加基本身份验证,它似乎工作。让我们看看我的代码是什么,如果您发现任何错误,请告诉我,我正在关注使用外部 API 的本教程:http ://www.toptal.com/angular-js/a-step-by-step -guide-to-your-first-angularjs-app
应用程序.js:
angular.module('TravelerApp', [
'TravelerApp.controllers',
'TravelerApp.services'
]);
服务.js:
angular.module('TravelerApp.services', [])
.factory('TravelerAPIService', function($http) {
var travelerAPI = {};
$http.defaults.headers.common.Authorization = 'Basic ABC743HFEd...=';
travelerAPI.getTravelers = function() {
return $http({
method: 'GET',
url: 'https://api.my.domain.com/v1/traveler/get'
});
}
return travelerAPI;
});
最后,controllers.js:
angular.module('TravelerApp.controllers', [])
.controller('travelersController', function($scope, TravelerAPIService) {
$scope.travelersList = [];
TravelerAPIService.getTravelers()
.success(function(data) {
console.log('SUCCESS');
$scope.travelersList = data;
})
.error(function(data, status) {
console.log('ERROR');
$scope.data = data || "Request failed";
$scope.status = status;
});
});
错误状态码为0,错误数据为空字符串。