相关疑难解决方法(0)

如何为自定义Angular $ resource操作指定headers参数

以下工作正常,但我认为这会全局修改$ httpProvider,这不是我想要的.

angular.module('SessionService', ['ngResource'])
    .config(function($httpProvider){
        $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
    })
    .factory('Login', function($resource){
        var resource = $resource('/adminui/login',{},{
            post:{
                method:"POST",
                isArray:false
            },
        });
        return resource;
    })
LoginCtrl = function($scope,Login) {
    $scope.login = function(){
        Login.post($.param({user:$scope.user.username,password:$scope.user.password}),$.noop,$.noop)
    }
}
Run Code Online (Sandbox Code Playgroud)

反正这样做呢?

...
    .factory('Login', function($resource){
        var resource = $resource('/adminui/login',{},{
            post:{
                method:"POST",
                isArray:false,
                headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'} // ignored
            },
        });
        return resource;
    })
Run Code Online (Sandbox Code Playgroud)

"headers"参数似乎被忽略了.请求仍然是

Content-Type:application/json;charset=UTF-8

我的标题值是否正常?

angularjs

27
推荐指数
2
解决办法
6万
查看次数

使用资源时,未正确生成Angular内容类型

我在Angular上使用资源尝试了以下命令:

angular.module('appServices', ['ngResource']).factory('Example', 
        function($resource){

            return $resource('http://api.example.com.br/teste', {}, {
                query: {method:'GET', headers: {'Content-Type': 'application/json'}}
        });
});
Run Code Online (Sandbox Code Playgroud)

但http内容类型未正确生成,在本例中为"application/json".

我见过类似的问题,比如AngularJS资源没有设置Content-Type,但我有最新的Angular版本(1.0.6/1.1.4).

上面的代码有什么问题?

结论

  • 如下所述,HTTP Get方法不应该有一个正文.
  • 属性标头在上述版本中不起作用.我使用以下命令失败:query:{method:'POST',headers:{'Content-Type':'application/json'}}
  • 这种方式对我有用:$ http.defaults.headers.put ['Content-Type'] ='application/json';

angularjs

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

angularjs ×2