首頁 >web前端 >js教程 >在angular中$http服務需要如何使用

在angular中$http服務需要如何使用

php中世界最好的语言
php中世界最好的语言原創
2018-03-16 17:24:091610瀏覽

這次帶給大家在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中文網其它相關文章!

推薦閱讀:

Html5的localStorage使用詳解

建立動態選單或下拉清單的JavaScript程式碼

 判斷對應式佈局中目前適配度的JavaScript程式碼

限製文字字數的JavaScript程式碼

以上是在angular中$http服務需要如何使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn