AngularJS AJAX - $http


$http adalah layanan AngularJS untuk membaca data dari server jarak jauh.


AngularJS $http

Layanan AngularJS $httpmembuat permintaan ke server, dan mengembalikan respons.

Contoh

Buat permintaan sederhana ke server, dan tampilkan hasilnya di header:

<div ng-app="myApp" ng-controller="myCtrl">

<p>Today's welcome message is:</p>
<h1>{{myWelcome}}</h1>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
  $http.get("welcome.htm")
  .then(function(response) {
    $scope.myWelcome = response.data;
  });
});
</script>

Metode

Contoh di atas menggunakan .getmetode $http layanan.

Metode .get adalah metode pintasan dari layanan $http. Ada beberapa cara pintas:

  • .delete()
  • .get()
  • .head()
  • .jsonp()
  • .patch()
  • .post()
  • .put()

Metode di atas adalah semua pintasan untuk memanggil layanan $http:

Contoh

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
  $http({
    method : "GET",
      url : "welcome.htm"
  }).then(function mySuccess(response) {
    $scope.myWelcome = response.data;
  }, function myError(response) {
    $scope.myWelcome = response.statusText;
  });
});

Contoh di atas mengeksekusi layanan $http dengan objek sebagai argumen. Objek menentukan metode HTTP, url, apa yang harus dilakukan jika berhasil, dan apa yang harus dilakukan jika gagal.



Properti

Respons dari server adalah objek dengan properti ini:

  • .config objek yang digunakan untuk menghasilkan permintaan.
  • .data string, atau objek, yang membawa respons dari server.
  • .headers fungsi yang digunakan untuk mendapatkan informasi header.
  • .status nomor yang menentukan status HTTP.
  • .statusText string yang mendefinisikan status HTTP.

Contoh

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
  $http.get("welcome.htm")
  .then(function(response) {
    $scope.content = response.data;
    $scope.statuscode = response.status;
    $scope.statustext = response.statusText;
  });
});

Untuk menangani kesalahan, tambahkan satu fungsi lagi ke .thenmetode:

Contoh

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
  $http.get("wrongfilename.htm")
  .then(function(response) {
    // First function handles success
    $scope.content = response.data;
  }, function(response) {
    // Second function handles error
    $scope.content = "Something went wrong";
  });
});

JSON

Data yang Anda dapatkan dari respons diharapkan dalam format JSON.

JSON adalah cara yang bagus untuk mengangkut data, dan mudah digunakan dalam AngularJS, atau JavaScript lainnya.

Contoh: Di server kami memiliki file yang mengembalikan objek JSON yang berisi 15 pelanggan, semuanya dibungkus dalam array yang disebut records.

Klik di sini untuk melihat objek JSON.

×

pelanggan.php

"<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body><p>{\n\"records\":[\n{\"Name\":\"Alfreds Futterkiste\",\"City\":\"Berlin\",\"Country\":\"Germany\"},\n{\"Name\":\"Ana Trujillo Emparedados y helados\",\"City\":\"México D.F.\",\"Country\":\"Mexico\"},\n{\"Name\":\"Antonio Moreno Taquería\",\"City\":\"México D.F.\",\"Country\":\"Mexico\"},\n{\"Name\":\"Around the Horn\",\"City\":\"London\",\"Country\":\"UK\"},\n{\"Name\":\"B's Beverages\",\"City\":\"London\",\"Country\":\"UK\"},\n{\"Name\":\"Berglunds snabbköp\",\"City\":\"Luleå\",\"Country\":\"Sweden\"},\n{\"Name\":\"Blauer See Delikatessen\",\"City\":\"Mannheim\",\"Country\":\"Germany\"},\n{\"Name\":\"Blondel père et fils\",\"City\":\"Strasbourg\",\"Country\":\"France\"},\n{\"Name\":\"Bólido Comidas preparadas\",\"City\":\"Madrid\",\"Country\":\"Spain\"},\n{\"Name\":\"Bon app'\",\"City\":\"Marseille\",\"Country\":\"France\"},\n{\"Name\":\"Bottom-Dollar Marketse\",\"City\":\"Tsawassen\",\"Country\":\"Canada\"},\n{\"Name\":\"Cactus Comidas para llevar\",\"City\":\"Buenos Aires\",\"Country\":\"Argentina\"},\n{\"Name\":\"Centro comercial Moctezuma\",\"City\":\"México D.F.\",\"Country\":\"Mexico\"},\n{\"Name\":\"Chop-suey Chinese\",\"City\":\"Bern\",\"Country\":\"Switzerland\"},\n{\"Name\":\"Comércio Mineiro\",\"City\":\"São Paulo\",\"Country\":\"Brazil\"}\n]\n} </p></body></html>\n<script>\n    function gtElInit() {\n        var lib = new google.translate.TranslateService();\n        lib.translatePage('', 'id', function() {});\n    }\n</script>\n<script src=\"https://translate.google.com/translate_a/element.js?cb=gtElInit&amp;client=wt&amp;hl=id&amp;te=pod\" type=\"text/javascript\"></script>\n\n\n</html>"

Contoh

Arahan ng-repeatini sempurna untuk mengulang melalui array:

<div ng-app="myApp" ng-controller="customersCtrl">

<ul>
  <li ng-repeat="x in myData">
    {{ x.Name + ', ' + x.Country }}
  </li>
</ul>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
  $http.get("customers.php").then(function(response) {
    $scope.myData = response.data.records;
  });
});
</script>

Aplikasi menjelaskan:

Aplikasi mendefinisikan customersCtrlcontroller, dengan a $scopedan $httpobjek.

$httpadalah objek XMLHttpRequest untuk meminta data eksternal.

$http.get()membaca data JSON dari https://www.w3schools.com/angular/customers.php .

Jika berhasil, pengontrol membuat properti, myData, dalam cakupan, dengan data JSON dari server.