我想創建一個簡單的應用程序使用Angular將消耗我的API。我使用虛擬機來運行代碼,並在計算機上訪問它,所以要從我的計算機調用API,我可以使用cURL或任何其他HTTP客戶端,並且一切正常。舉個例子:
捲曲-k --user [email protected]:密碼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
app.js:
angular.module('TravelerApp', [
'TravelerApp.controllers',
'TravelerApp.services'
]);
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,錯誤數據爲空字符串。
當我殺死HTTP服務器併發出請求時,我得到了類似的結果。也許相關:http://stackoverflow.com/questions/2000609/jquery-ajax-status-code-0 –