原文鏈接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/angularjs-http-service/
1.通常用法:
$http服務是一個只有一個參數-配置對象的函數,用於產生一個http請求並返回一個promise對象。
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
//響應成功
}, function errorCallback(response) {
//響應失敗
});
這個回覆對象有這些屬性:
data:轉換函數轉換之後的的響應體
status:響應的http狀態碼
header:得到的頭部getter函數
config:用於生成請求的配置對象
statusText:響應的http狀態文本
響應狀態碼(status)在200-299之間被認爲是成功狀態,並且會導致successCallback函數被調用。
2.快捷用法:
所有快捷用法都需要通過URL,並要求數據必須通過post或put要求。
$http.get('/someUrl', config).then(successCallback, errorCallback);
$http.post('/someUrl', data, config).then(successCallback, errorCallback);
快捷用法有:
$http.head 與get類似,但只獲得http頭信息
$http.put 用於向指定的URI傳送更新資源
$http.delete 刪除某一資源
$http.jsonp 獲取jsonp數據
$http.patch 用於更新某一部分的內容
3.使用$http編寫單元測試
當進行單元測試時(用ngMock),必須調用$httpbackend.flush()來清除每個待定的請求。
$httpBackend.expectGET(...);
$http.get(...);
$httpBackend.flush();
4.返回一個promise對象
var promise=$http({
method:'GET',
url:"data.json"
});
promise.then(function(resp){
//返回resp響應對象
},function(resp){
//返回錯誤信息的resp
});