サーバーにデータを送信する AngularJS リソース モジュールを作成しようとしています。デフォルトのコンテンツ タイプは「application/xml」のようです。content-type を「application/x-www-form-urlencoded」にオーバーライドしようとしています。通常の $http.post() を実行すると、コンテンツ タイプを設定でき、Firebug をチェックインすると、正しく設定されていることがわかります。リソースの POST メソッドを使用すると、コンテンツ タイプをデフォルトから変更できません。ドキュメントの説明どおりにやっていると思います。
var myApp = angular.module('myApp',['myResource']);
angular.module('myResource', ['ngResource']).factory('myResource', function($resource){
return $resource('/echo/json',{},{
add:{ method:'POST', params:{ foo:'1' }, headers:{'Content-Type':'application/x-www-form-urlencoded'} }
});
});
function MyCtrl($scope,$http,myResource) {
$scope.click = function() {
//This will make an ajax call with a content-type of application/xml
myResource.add();
//this will make an ajax call with a content-type of application/x-www-form-urlencoded
$http.post('/echo/json','foo=1',{'headers':{'Content-Type':'application/x-www-form-urlencoded'}});
}
}
AngularJS リソースを別のコンテンツ タイプで投稿する方法についてのアイデアや例をいただければ幸いです。