原文鏈接: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.get獲得服務器上的某一資源
- $http.head ?與get類似,但只獲得http頭信息
- $http.post?向服務器提交數據、更新創建資源等
- $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
});