2012-10-08 13 views
6

サーバーにデータを送信するAngularJSリソースモジュールを作成しようとしています。デフォルトのコンテンツタイプは "application/xml"と表示されます。私はcontent-typeを "application/x-www-form-urlencoded"に変更しようとしています。通常の$ http.post()を実行するときにコンテンツタイプを設定することができ、Firebugをチェックインすると正しく設定されていることがわかります。リソースのPOSTメソッドを使用すると、content-typeをデフォルトから変更することができません。私はdocumentationがどのように記述しているかによってそれをやっていると思います。AngularJSリソースが設定されていませんContent-Type

http://jsfiddle.net/vBsUH/3/

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リソースを取得する方法上の任意のアイデアや例がいただければ幸いです。

答えて

1

私は同様の質問にはいくつかの情報を提供ジェイク、昨日(10月12日現在)開発ドキュメントは、ヘッダをオーバーライドすることは$リソースに可能であることを示しているが

:以下その応答をペーストhttps://stackoverflow.com/a/12876784/1367284

まだリリースされていません(v1.0.2またはv1.1.0)。しかし、この機能はv1.0.xとmasterブランチにあります。この機能を利用するには、v1.0.xブランチからビルドすることを検討してください。

構築する方法: http://docs.angularjs.org/#H1_4

また、スナップショットビルドから引くことができます:この機能は、次のリリースになりますようにhttp://code.angularjs.org/snapshot/

が見えます。

関連する問題