こんにちは!ぐちです。
POSTリクエスト
Cordova × AngularJSを使ってPOST通信をする際にパラメータ値がうまく渡らないといった内容の記事を多く見かけたので僕が実装した方法をご紹介したいと思います。※間違い等あるかもしれませんが。。。
リクエスト設定値
AngularJSのデフォルトではパラメータがJSON形式に変換されてしまうのでtransformRequest
を設定して指定した書式で送信することができます。URLエンコード形式で送信するには諸説ありますがnull
を指定することで上手く動きました。POSTリクエスト時に渡すオブジェクトを下記のように宣言しておきます。
var conf = { headers: { "Content-type": undefined }, transformRequest: null };
$http.post()
AngularJSの$http
を用いて以下のように記述することでURLエンコードされたパラメータをPOST送信することができます。
var fd = new FormData(); fd.append('id', 'hoge'); fd.append('name', 'ほげ'); $http.post( 'http://192.168.11.100/api/getInfo/', fd, conf ) .success(function(data, status, headers, config) { // 成功時の処理 }) .error(function(data, status, headers, config){ // 失敗時の処理 });
今回はコード中心で短い記事ですがコピペで使えて便利!!ということで今回はこの辺で。