【问题标题】:AngularJS resource not setting Content-TypeAngularJS 资源未设置 Content-Type
【发布时间】:2012-10-08 16:08:41
【问题描述】:

我正在尝试编写一个 AngularJS 资源模块,它将一些数据发布到服务器。默认内容类型似乎是“application/xml”。我正在尝试将内容类型覆盖为“application/x-www-form-urlencoded”。执行正常 $http.post() 时,我可以设置内容类型,当我签入 Firebug 时,我可以看到它设置正确。当我使用资源的 POST 方法时,我无法更改默认的内容类型。我认为我是按照documentation 描述的方式来做的。

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

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    杰克,昨天我为一个类似的问题提供了一些信息:https://stackoverflow.com/a/12876784/1367284

    将该回复粘贴到下方:

    虽然开发文档(截至 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/

    看起来这个功能将在下一个版本中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-30
      • 2013-11-07
      • 2013-12-10
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 2014-03-06
      相关资源
      最近更新 更多