Rumah > hujung hadapan web > tutorial js > Pengenalan kepada penggunaan perkhidmatan $http dalam AngularJS_AngularJS

Pengenalan kepada penggunaan perkhidmatan $http dalam AngularJS_AngularJS

WBOY
Lepaskan: 2016-05-16 15:16:08
asal
2012 orang telah melayarinya

Kami boleh menggunakan perkhidmatan $http terbina dalam untuk berkomunikasi secara langsung dengan dunia luar. Perkhidmatan $http hanya merangkum objek XMLHttpRequest asli pelayar.

1. Panggilan berantai

Perkhidmatan $http ialah fungsi yang hanya boleh menerima satu parameter Parameter ini ialah objek yang mengandungi kandungan konfigurasi yang digunakan untuk menjana permintaan HTTP. Fungsi ini mengembalikan objek janji dengan dua kaedah: kejayaan dan ralat.

$http({
url:'data.json',
method:'GET'
}).success(function(data,header,config,status){
//响应成功
}).error(function(data,header,config,status){
//处理响应失败
});
Salin selepas log masuk

2 Kembalikan objek janji

var promise=$http({
method:'GET',
url:"data.json"
});
Salin selepas log masuk

Memandangkan kaedah $http mengembalikan objek janji, kami boleh menggunakan kaedah kemudian untuk mengendalikan panggilan balik apabila respons kembali. Jika anda menggunakan kaedah itu, anda akan mendapat parameter khas, yang mewakili maklumat kejayaan atau kegagalan objek yang sepadan, dan juga boleh menerima dua fungsi pilihan sebagai parameter. Atau anda boleh menggunakan panggilan balik kejayaan dan ralat.

promise.then(function(resp){
//resp是一个响应对象
},function(resp){
//带有错误信息的resp
});
Salin selepas log masuk

Atau ini:

promise.success(function(data,status,config,headers){
//处理成功的响应
});
promise.error(function(data,status,hedaers,config){
//处理失败后的响应
});
Salin selepas log masuk
Perbezaan utama antara kaedah

then() dan dua kaedah lain ialah ia akan menerima objek respons yang lengkap, manakala success() dan error() akan memusnahkan objek respons.

3. Cepat dapatkan permintaan

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

Kaedah get() mengembalikan objek HttpPromise.

Anda juga boleh menghantar, contohnya: delete/head/jsonp/post/put Sila rujuk halaman 148 untuk parameter tertentu yang boleh diterima dalam fungsi

② Ambil contoh menghantar permintaan jsonp sekali lagi: Untuk menghantar permintaan JSONP, url mesti mengandungi perkataan JSON_CALLBACK.

jsonp(url,config) dengan konfigurasi adalah pilihan

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

4. Anda juga boleh menggunakan $http sebagai fungsi Dalam kes ini, anda perlu memasukkan objek tetapan untuk menerangkan cara membina objek XHR.

$http({
method:'GET',
url:'/api/users.json',
params:{
'username':'tan'
});
Salin selepas log masuk

Objek tetapan boleh mengandungi kekunci utama berikut:

①kaedah

Boleh: GET/DELETE/HEAD/JSONP/POST/PUT

②url: sasaran permintaan mutlak atau relatif
③params (peta rentetan atau objek)
Nilai kunci ini ialah peta rentetan atau objek, yang akan ditukar menjadi rentetan pertanyaan dan dilampirkan pada URL. Jika nilai itu bukan rentetan, ia akan bersiri JSON.
Contohnya:

//参数会转为?name=ari的形式
$http({
params:{'name':'ari'}
});
Salin selepas log masuk

④data (rentetan atau objek)

Objek ini mengandungi data yang akan dihantar ke pelayan sebagai badan mesej. Biasanya digunakan semasa menghantar permintaan POST.

Bermula dari AngularJS 1.3, ia juga boleh menghantar data binari dalam permintaan POST. Untuk menghantar objek gumpalan, anda boleh menghantarnya dengan menggunakan parameter data.
Contohnya:

var blob=new Blob(['Hello world'],{type:'text/plain'});
$http({
method:'POST',
url:'/',
data:blob
});
Salin selepas log masuk

4. Objek respons

Objek tindak balas yang diluluskan oleh AngularJS kepada kaedah then() mengandungi empat sifat.

data

Data ini mewakili badan tindak balas yang ditukar (jika penukaran ditakrifkan)

status

Kod status HTTP respons

pengepala

Fungsi ini ialah fungsi pengumpul maklumat pengepala, yang boleh menerima satu parameter untuk mendapatkan nilai nama yang sepadan

Sebagai contoh, gunakan kod berikut untuk mendapatkan nilai X-Auth-ID:

$http({
method: 'GET',
url: '/api/users.json'
}).then (resp) {
// 读取X-Auth-ID
resp.headers('X-Auth-ID');
});
Salin selepas log masuk

konfigurasi

Objek ini ialah objek tetapan lengkap yang digunakan untuk menjana permintaan asal.

statusTeks(String)

Rentetan ini ialah teks status HTTP bagi respons.

5. Mencache permintaan HTTP

Secara lalai, perkhidmatan $http tidak cache permintaan secara setempat. Apabila membuat permintaan individu, kami boleh mendayakan caching dengan menghantar nilai boolean atau contoh cache kepada permintaan $http.

$http.get('/api/users.json',{ cache: true })
.success(function(data) {})
.error(function(data) {});
Salin selepas log masuk

Kali pertama permintaan dihantar, perkhidmatan $http akan menghantar permintaan GET ke /api/users.json. Apabila permintaan GET yang sama dihantar untuk kali kedua, perkhidmatan $http akan mendapatkan semula hasil permintaan daripada cache tanpa benar-benar menghantar permintaan HTTP GET.

Dalam contoh ini, kerana caching didayakan, AngularJS akan menggunakan $cacheFactory secara lalai Perkhidmatan ini dibuat secara automatik oleh AngularJS apabila ia bermula.

Jika anda mahukan lebih kawalan tersuai ke atas cache yang digunakan oleh AngularJS, anda boleh menghantar contoh cache tersuai kepada permintaan dan bukannya benar.

Izinkan saya memberitahu anda tentang pengetahuan $http AngularJS.

AngularJS $http ialah perkhidmatan untuk membaca data pada pelayan web.

$http.get(url) ialah fungsi yang digunakan untuk membaca data pelayan.

Contoh AngularJS

<div ng-app="myApp" ng-controller="customersCtrl"> 
<ul>
<li ng-repeat="x in names">
{{ x.Name + ', ' + x.Country }}
</li>
</ul>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
$http.get("http://www.runoob.com/try/angularjs/data/Customers_JSON.php")
.success(function(response) {$scope.names = response.records;});
});
</script>
Salin selepas log masuk

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan