首頁 web前端 js教程 簡介AngularJS中$http服務的用法

簡介AngularJS中$http服務的用法

May 16, 2016 pm 03:53 PM

我們可以使用內建的$http服務直接同外部進行通訊。 $http服務只是簡單的封裝了瀏覽器原生的XMLHttpRequest物件。接下來透過本文給大家簡單介紹angularjs中http服務的用法,喜歡的朋友可以參考下

我們可以使用內建的$http服務直接同外部進行通訊。 $http服務只是簡單的封裝了瀏覽器原生的XMLHttpRequest物件。

1、鍊式呼叫

$http服務只能接受一個參數的函數,這個參數是一個對象,包含了用來產生HTTP請求的設定內容。這個函數傳回一個promise對象,具有success和error兩個方法。

$http({
url:'data.json',
method:'GET'
}).success(function(data,header,config,status){
//响应成功
}).error(function(data,header,config,status){
//处理响应失败
});
登入後複製

2、回傳一個promise物件

var promise=$http({
method:'GET',
url:"data.json"
});
登入後複製

promise.then(function(resp){
//resp是一个响应对象
},function(resp){
//带有错误信息的resp
});
登入後複製

promise.success(function(data,status,config,headers){
//处理成功的响应
});
promise.error(function(data,status,hedaers,config){
//处理失败后的响应
});
登入後複製

>

由於$http方法回傳一個promise對象,我們可以在回應返回時用then方法來處理回呼。如果使用then方法,會得到一個特殊的參數,它代表了對應物件的成功或失敗訊息,也可以接受兩個可選的函數作為參數。或可以使用success和error回調來代替。

或這樣:

then()與其他兩種方法的主要方法與其他兩種方法的主要方法與其他兩種方法的主要方法與其他兩種方法的主要方法與其他兩種方法的主要方法與其他兩種方法的主要方法與其他兩種方法的主要方法與其他兩種方法的主要方法差異是,它會接收到完整的回應對象,而success()和error()則會對回應對象進行析構。

3、快速的get請求

①$http.get('/api/users.json');

get()方法傳回HttpPromise物件。

$http({
method:'GET',
url:'/api/users.json',
params:{
'username':'tan'
});
登入後複製
也可以發送例如:delete/head/jsonp/post/put 函數內可接受參數具體參考148頁

②以再發送jsonp請求舉例說明: 為了發送JSONP請求,其中url必須包含JSON_CALLBACK字樣。

jsonp(url,config) 其中config是可選的

var promise=$http.jsonp("/api/users.json?callback=JSON_CALLBACK");


4、也可以將$http當做函數來使用,這時需要傳入一個設定對象,用來說明如何建構XHR對象。

//参数会转为?name=ari的形式
$http({
params:{'name':'ari'}
});
登入後複製

其中設定物件可以包含以下主要的鍵:

①method


可以是:

①method

var blob=new Blob(['Hello world'],{type:'text/plain'});
$http({
method:'POST',
url:'/',
data:blob
});
登入後複製

可以是:

①method

可以是:①method< GET/DELETE/HEAD/JSONP/POST/PUT

②url:絕對的或相對的請求目標

③params(字串map或物件)

這個鍵的值是一個字串map或對象,會轉換成查詢字串追加在URL後面。如果值不是字串,會被JSON序列化。

像這個:


④data(字串或物件)

這個物件中包含了將會被當作訊息體發送給伺服器的數據。通常在發送POST請求時使用。

從AngularJS 1.3開始,它還可以在POST請求中發送二進位資料。要傳送一個blob對象,你可以簡單地透過使用data參數來傳遞它。

例如:


4、回應物件

< )方法的回應物件包含了四個屬性。

$http({
method: &#39;GET&#39;,
url: &#39;/api/users.json&#39;
}).then (resp) {
// 读取X-Auth-ID
resp.headers(&#39;X-Auth-ID&#39;);
});
登入後複製

data

這個資料代表轉換後的反應體(如果定義了轉換的話)

status

status> 回應的HTTP狀態碼

headers

$http.get(&#39;/api/users.json&#39;,{ cache: true })
.success(function(data) {})
.error(function(data) {});
登入後複製

這個函數是頭資訊的getter函數,可以接受一個參數,用來取得對應名字值

例如,使用下列程式碼取得X-Auth-ID的值:

config

config

config

這個物件是用來產生原始請求的完整設定物件。

<p ng-app="myApp" ng-controller="customersCtrl"> 
<ul>
<li ng-repeat="x in names">
{{ x.Name + &#39;, &#39; + x.Country }}
</li>
</ul>
</p>
<script>
var app = angular.module(&#39;myApp&#39;, []);
app.controller(&#39;customersCtrl&#39;, function($scope, $http) {
$http.get("http://www.runoob.com/try/angularjs/data/Customers_JSON.php")
.success(function(response) {$scope.names = response.records;});
});
</script>
登入後複製

statusText(字串)

這個字串是回應的HTTP狀態文字。 5、快取HTTP請求預設情況下,$http服務不會對請求進行本地快取。在發送單獨的請求時,我們可以透過向$http請求傳入一個布林值或一個快取實例來啟用快取。 第一次發送請求時,$http服務會向/api/users.json發送GET請求。第二次發送同一個GET請求時,$http服務會從快取中取回請求的結果,而不會真的發送HTTP GET請求。 在這個例子裡,由於設定了啟用緩存,AngularJS預設會使用$cacheFactory,這個服務是AngularJS在啟動時自動建立的。 如果想要對AngularJS所使用的快取進行更多的自訂控制,可以向請求傳入一個自訂的快取實例取代true。 下面要跟大家說下AngularJS $http知識。 AngularJS $http 是用來讀取網頁伺服器上資料的服務。 $http.get(url) 是用來讀取伺服器資料的函數。 AngularJS 實例

 更多相關教程請訪問JavaScript基礎教程

 

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
http狀態碼520是什麼意思 http狀態碼520是什麼意思 Oct 13, 2023 pm 03:11 PM

http狀態碼520是指伺服器在處理請求時遇到了一個未知的錯誤,無法提供更具體的資訊。用於表示伺服器在處理請求時發生了一個未知的錯誤,可能是由於伺服器配置問題、網路問題或其他未知原因導致的。通常是由伺服器配置問題、網路問題、伺服器過載或程式碼錯誤等原因導致的。如果遇到狀態碼520錯誤,最好聯絡網站管理員或技術支援團隊以取得更多的資訊和協助。

http狀態碼403是什麼 http狀態碼403是什麼 Oct 07, 2023 pm 02:04 PM

http狀態碼403是伺服器拒絕了客戶端的請求的意思。解決http狀態碼403的方法是:1、檢查身份驗證憑證,如果伺服器要求身份驗證,確保提供正確的憑證;2、檢查IP位址限制,如果伺服器對IP位址進行了限制,確保客戶端的IP位址被列入白名單或未列入黑名單;3、檢查文件權限設置,如果403狀態碼與文件或目錄的權限設置有關,確保客戶端具有足夠的權限訪問這些文件或目錄等等。

瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 Feb 18, 2024 pm 08:41 PM

掌握HTTP301狀態碼的意思:網頁重定向的常見應用場景隨著網路的快速發展,人們對網頁互動的要求也越來越高。在網頁設計領域,網頁重定向是一種常見且重要的技術,透過HTTP301狀態碼來實現。本文將探討HTTP301狀態碼的意義以及在網頁重新導向中的常見應用場景。 HTTP301狀態碼是指永久重新導向(PermanentRedirect)。當伺服器接收到客戶端發

HTTP 200 OK:了解成功回應的意義與用途 HTTP 200 OK:了解成功回應的意義與用途 Dec 26, 2023 am 10:25 AM

HTTP狀態碼200:探索成功回應的意義與用途HTTP狀態碼是用來表示伺服器回應狀態的數字代碼。其中,狀態碼200表示請求已成功被伺服器處理。本文將探討HTTP狀態碼200的具體意義與用途。首先,讓我們來了解HTTP狀態碼的分類。狀態碼分為五個類別,分別是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的回應。而200是2xx中最常見的狀態碼

如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 Sep 26, 2023 am 11:19 AM

如何使用NginxProxyManager實現HTTP到HTTPS的自動跳轉隨著互聯網的發展,越來越多的網站開始採用HTTPS協議來加密傳輸數據,以提高數據的安全性和用戶的隱私保護。由於HTTPS協定需要SSL憑證的支持,因此在部署HTTPS協定時需要有一定的技術支援。 Nginx是一款強大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

使用http.PostForm函數傳送帶有表單資料的POST請求 使用http.PostForm函數傳送帶有表單資料的POST請求 Jul 25, 2023 pm 10:51 PM

使用http.PostForm函數發送帶有表單資料的POST請求在Go語言的http包中,可以使用http.PostForm函數發送帶有表單資料的POST請求。 http.PostForm函數的原型如下:funcPostForm(urlstring,dataurl.Values)(resp*http.Response,errerror)其中,u

快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 Sep 12, 2023 pm 01:15 PM

快速應用:PHP非同步HTTP下載多個檔案的實用開發案例分析隨著互聯網的發展,檔案下載功能已成為許多網站和應用程式的基本需求之一。而對於需要同時下載多個檔案的場景,傳統的同步下載方式往往效率低且耗費時間。為此,使用PHP非同步HTTP下載多個檔案成為了越來越常見的解決方案。本文將透過一個實際的開發案例,詳細分析如何使用PHP非同步HTTP

http請求415錯誤解決方法 http請求415錯誤解決方法 Nov 14, 2023 am 10:49 AM

解決方法:1、檢查請求頭中的Content-Type;2、檢查請求體中的資料格式;3、使用適當的編碼格式;4、使用適當的請求方法;5、檢查伺服器端的支援。

See all articles