這次帶給大家在angular中$http服務需要如何使用,使用angular中$http服務的注意事項有哪些,以下就是實戰案例,一起來看一下。
$http服務
$http(requestConfig)只是一個封裝的XMLHttpRequest物件。
requestConfig 是一個對象,為發送請求的參數。
傳回一個Promise物件
$http({ method: 'GET', url: '/someUrl' }).then(function successCallback(response) { // 请求成功执行代码 }, function errorCallback(response) { // 请求失败执行代码 });
promise回傳時,可以鍊式呼叫。還可以實用then方法處理回調。
如果回應狀態碼在200和299之間,會認為回應是成功的, success回呼會被調用,否則error
回呼會被調用。
呼叫HttpPromise物件上的then()、 success()和error()方法。 then()方法與其
他兩種方法的主要差異是,它會接收到完整的回應對象,而success()和error()則會對回應對象進行析構。
快速方法
$http.get $http.get $http.head $http.post $http.put $http.delete $http.jsonp $http.patch
回應物件
AngularJS傳遞給then()方法的回應物件包含四個屬性。
data(字串或物件)
這個資料代表轉換過後的回應體(如果定義了轉換的話)。
status(數值類型)
回應的HTTP狀態碼。
headers(函數)
這個函數是頭資訊的getter函數,可以接受一個參數,用來取得對應名字的值。例如,用如
下程式碼取得X-Auth-ID的值:
method: 'GET',url: '/api/users.json'}).then (resp) {// 读取X-Auth-ID resp.headers('X-Auth-ID'); });
config(物件)
這個物件是用來產生原始請求的完整設定物件。
statusText(字串)
這個字串是回應的HTTP狀態文字。
快取$http請求
預設情況下, $http服務不會對請求進行本機快取。在發送單獨的請求時,我們可以透過向
$http請求傳入一個布林值或一個快取實例來啟用快取。
.success(function(data) {}) .error(function(data) {});
第一次發送請求時, $http服務會向/api/users.json發送GET請求。第二次發送同一個GET
請求時, $http服務會從快取中取回請求的結果,而不會真的發送一個HTTP GET請求。
在這個例子裡,由於設定了啟用緩存, AngularJS預設會使用$cacheFactory,這個服務是
AngularJS在啟動時自動建立的。
例如,如果要使用LRU(Least Recenlty Used,最近最少使用)緩存,可以像下面這樣傳入
快取實例物件:
var lru = $cacheFactory('lru',{capacity: 20 }); // $http请求 $http.get('/api/users.json', { cache: lru }) .success(function(data){}) .error(function(data){});
每次發送請求時都傳入一個自訂快取是很麻煩的事情(即使是在服務中)。可以透過應用
的.config()函數來為所有$http請求設定一個預設的快取:
angular.module('myApp', []) .config(function($httpProvider, $cacheFactory) { $httpProvider.defaults.cache = $cacheFactory('lru', { capacity: 20 }); });
現在,所有的請求都會使用我們自訂的LRU快取了。
我相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是在angular中$http服務需要如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!