AngularJS AJAX - $http
- Föregående sida AngularJS services
- Nästa sida AngularJS tables
$http är en tjänst i AngularJS som används för att läsa data från en fjärrserver.
AngularJS $http
AngularJS $http
Tjänsten skickar en förfrågan till servern och returnerar ett svar.
Example
Skicka en enkel förfrågan till servern och visa resultatet i titeln:
<div ng-app="myApp" ng-controller="myCtrl"> <p>Idagens välkomstmelding är:</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>
metod
I det föregående exemplet används $http
tjänstens .get
Metod.
.get-metoden är en snabbväg för $http-tjänsten. Det finns flera snabbvägar:
.delete()
.get()
.head()
.jsonp()
.patch()
.post()
.put()
Följande metoder är snabbvägar för att anropa $http-tjänsten:
Example
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; }); });
I det föregående exemplet används ett objekt som parameter för att utföra $http-tjänsten. Detta objekt specificerar HTTP-metoden, URL, åtgärden som ska utföras vid framgång och åtgärden som ska utföras vid misslyckande.
Egenskap
Svaret från servern är ett objekt med följande egenskaper:
.config
Objektet som används för att skapa en förfrågan.data
Strängar eller objekt, som bär över svar från servern.headers
Function to get header information.status
Define the numeric value for HTTP status.statusText
Define the string for HTTP status
Example
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; }); });
To handle errors, please send to .then
Add a function to the method:
Example
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
The data obtained from the response should be in JSON format.
JSON is an excellent way to transmit data and is easy to use in AngularJS or any other JavaScript.
For example, we have a file on the server that returns a JSON object containing 15 customers, all wrapped in a name called records
in the array.
Please click here to view the JSON object.
Example
The ng-repeat directive is perfect for looping through an 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>
Applikationens beskrivning:
den här applikationen definierar customersCtrl
controller med scope
och http
-objekt.
$http
är en XMLHttpRequest-objektet, används för att begära extern data.
$http.get()
Läs från https://www.codew3c.com/angular/customers.php JSON-data.
Efter framgång, skapar kontrollern en egenskap i scopet myData
Innehåller JSON-data från servern.
- Föregående sida AngularJS services
- Nästa sida AngularJS tables