AngularJS における HTTP 通信では、こちらのページに記載した XMLHttpRequest オブジェクトが利用されています。AngularJS で HTTP 通信を行うためのサンプルコードを以下に示します。公式ページはこちらです。
index.html
<!DOCTYPE html>
<html lang="ja" ng-app="myApp">
<head>
<meta charset="utf-8">
<script src="angular.min.js"></script>
</head>
<body>
<div ng-controller="myController">
ここにサンプルコードを記載。
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myController', ['$scope', '$http', function($scope, $http){
// ここにサンプルコードを記載。
}]);
</script>
</body>
</html>
api.html
<p>API result.</p>
返されるプロミスオブジェクトにコールバック関数を登録します。
HTML
<p>{{ response | json }}</p>
JavaScript
$http.get('api.html')
.success(function(data, status, headers, config){
$scope.response = [data, status, headers, config];
})
.error(function(data, status, headers, config){
$scope.response = [data, status, headers, config];
});
HTML
<p>{{ response | json }}</p>
JavaScript
$http.post('api.html', {key:'value'})
.success(function(data, status, headers, config){
$scope.response = [data, status, headers, config];
})
.error(function(data, status, headers, config){
$scope.response = [data, status, headers, config];
});
HTML
<p>{{ response | json }}</p>
JavaScript
// 新規ヘッダーの追加
$http.defaults.headers.common.MyHeader = 'value';
// 既定ヘッダーの削除
delete $http.defaults.headers.common.Accept;
$http.get('api.html')
.success(function(data, status, headers, config){
$scope.response = [data, status, headers, config];
})
.error(function(data, status, headers, config){
$scope.response = [data, status, headers, config];
});
GET/DELETE には既定値がないため新規にオブジェクトを追加します。
$http.defaults.headers.get = {MyHeader:'value'};
$http.defaults.headers.delete = {MyHeader:'value'};
POST/PUT にはオブジェクトが設定されているため以下のように記述できます。
$http.defaults.headers.post.MyHeader = 'value';
$http.defaults.headers.put.MyHeader = 'value';
$http
ではなく $httpProvider
を config 内で設定します。
HTML
<p>{{ response | json }}</p>
JavaScript
var app = angular.module('myApp', []);
app.config(['$httpProvider', function($httpProvider){
$httpProvider.defaults.headers.common.MyHeader = 'value';
}]);
app.controller('myController', ['$scope', '$http', function($scope, $http){
$http.get('api.html')
.success(function(data, status, headers, config){
$scope.response = [data, status, headers, config];
})
.error(function(data, status, headers, config){
$scope.response = [data, status, headers, config];
});
}]);