一尘不染

AngularJS资源未设置Content-Type

angularjs

我正在尝试编写一个AngularJS资源模块,它将一些数据发布到服务器。默认的内容类型似乎是“ application /xml”。我试图将内容类型覆盖为“ application / x-www-form-urlencoded”。当执行普通的$http.post()时,我可以设置内容类型,当我检入Firebug时,可以看到设置正确。当我使用资源的POST方法时,无法获得要从默认值更改的内容类型。我认为我正在按照文档中的描述进行操作。

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资源发布具有不同内容类型的想法或示例,将不胜感激。


阅读 217

收藏
2020-07-04

共1个答案

一尘不染

将响应粘贴到下面:

尽管开发文档(截至10月12日)显示在$
resource中可以覆盖标头,但尚未发布(v1.0.2或v1.1.0)。但是,该功能位于v1.0.x和master分支中。为了获得该功能,您现在可以考虑从v1.0.x分支进行构建。

如何建立:http//docs.angularjs.org/#H1_4

或者,您可以从快照构建中提取:http :
//code.angularjs.org/snapshot/

看起来该功能将在下一个版本中发布。

2020-07-04