$httpを使った通信
HTTPのGETメソッドでリクエストを行う場合のコード例は以下。
var config = {params: {id: '5'};
$http.get('api/user', config
}).success(function(data, status, headers, config) {
// 成功時の処理
}).error(function(data, status, headers, config){
// エラー処理
});
リクエストの詳細な設定
$http.get()等に渡すconfigオブジェクトでは、以下のような項目について設定を行える。
method: HTTPリクエストの種類
url: リクエスト対象のリソース
params: キーと値のペア(URLのパラメータに変換される)
data: リクエストの本体
timeout: リクエストがタイムアウトするまでの時間(ミリ秒単位)
HTTPヘッダーの設定
すべてのリクエストに対してヘッダーを設定したい場合は以下のように書く。
angular.module('MyApp', []).
config(function($httpProvider) {
// ヘッダーを削除
delete $httpProvider.default.headers.common['X-Requested-With'];
// ヘッダーを追加
$httpProvider.default.headers.get['DNT'] = 1;
});
特定のリクエストについてのみヘッダーを設定したい場合は以下のように書く。
var config = {
headers: {'Authorization': 'Basic xxxxxxx'},
params: {id: 5}
};
$http.get('api/user', config).success(function(){/* 成功時の処理 */});
レスポンスのキャッシュ
デフォルトではキャッシュは無効化されているが、以下のようにして有効化できる。
var config = {cache: true};
$http.get('http://server/myapi', config).success(function(){/* 成功時の処理 */});
1度あるURLに対してリクエストが行われると、2回め以降は同じURLに対してキャッシュされたレスポンスが返される。
リクエストやレスポンスの変換
- リクエストの際、configオブジェクトのdataプロパティにオブジェクトが含まれている場合、これをJSONに変換する
- レスポンスにXSRFプレフィックスが含まれている場合、これを取り除く。
- レスポンスがJSONであった場合はこれをオブジェクトへとデシリアライズする
次回は5.2 ユニットテストから。