Derniers tutoriels de développement web
 

AngularJS AJAX - $ http


$ http est un service AngularJS pour lire des données depuis des serveurs distants.


AngularJS $ http

Le AngularJS $http service fait une demande au serveur, et renvoie une réponse.

Exemple

Faire une simple demande au serveur, et afficher le résultat dans un en-tête:

<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>
Essayez - le vous - même »

Méthodes

L'exemple ci - dessus utilise le .get procédé de la $http service.

La méthode de .get est une méthode de raccourci du service $ http. Il existe plusieurs méthodes de raccourci:

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

Les méthodes ci-dessus sont tous les raccourcis d'appeler le service $ http:

Exemple

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
    $http({
        method : "GET",
        url : "welcome.htm"
    }).then(function mySucces(response) {
        $scope.myWelcome = response.data;
    }, function myError(response) {
        $scope.myWelcome = response.statusText;
    });
});
Essayez - le vous - même »

L'exemple ci-dessus exécute le service de $ http avec un objet comme argument. L'objet spécifie la méthode HTTP, l'URL, ce qu'il faut faire en cas de succès, et ce qu'il faut faire en cas d'échec.


Propriétés

La réponse du serveur est un objet avec les propriétés suivantes:

  • .config l'objet utilisé pour générer la demande.
  • .data une chaîne, ou un objet, portant la réponse du serveur.
  • .headers une fonction à utiliser pour obtenir des informations d' en- tête.
  • .status un nombre définissant le statut HTTP.
  • .statusText une chaîne définissant le statut HTTP.

Exemple

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;
    });
});
Essayez - le vous - même »

Pour gérer les erreurs, ajouter un plus de fonctions à la .then méthode:

Exemple

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";
    });
});
Essayez - le vous - même »

JSON

Les données que vous obtenez de la réponse devrait être au format JSON.

JSON est un excellent moyen de transport de données, et il est facile à utiliser dans les AngularJS, ou tout autre JavaScript.

Exemple: Sur le serveur , nous avons un fichier qui retourne un objet JSON contenant 15 clients, le tout enveloppé dans un tableau appelé records .

Jetez un oeil à l'objet JSON.

×

customers.php

 {{Data | json}} 

Exemple

Le ng-repeat directive est parfait pour une boucle à travers un tableau:

<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>
Essayez - le vous - même »

Demande a expliqué:

L'application définit le customersCtrl contrôleur, avec un $scope et $http objet.

$http est un objet XMLHttpRequest pour demander des données externes.

$http.get() lit les données JSON de http://www.w3ii.com/angular/customers.php .

En cas de succès, le contrôleur crée une propriété, myData , dans le champ d' application, avec des données JSON à partir du serveur.