当前位置: 首页 > 面试题库 >

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

鲜于温书
2023-03-14
问题内容

以下工作正常,但是我认为这会全局修改$ 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)
    }
}

反正有这样做吗?

...
    .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;
    })

“标题”参数似乎被忽略了。请求仍然

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

我的标头值可以吗?


问题答案:

我已经确认1.1.3确实支持这一点。但是,您需要确保您还获得了资源服务的1.1.3版本。快速测试:

angular.module('myApp', ['ngResource']).
  config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/', {templateUrl: 'partials/partial1.html',controller: 'MyController'});
    $routeProvider.otherwise({redirectTo: '/'});
  }])

  .controller("MyController", function( $scope, Bug) {
    Bug.post({test:"test"});
  })

  .factory('Bug', function($resource){
    var resource = $resource('/bug',{},{
        post:{
            method:"POST",
            isArray:false,
            headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'} 
        },
    });
    return resource;
});

这将发出一个标头设置为(使用Chrome确认)的请求:

Content-Type:application/x-www-form-urlencoded; charset=UTF-8

快速说明,我无法找到angular-
resource.js的下载,因此我不得不去github网站下载它。这是在这里。

For some giggles, I created a fiddle. Notice that there will be a failed POST
call, but its headers are set correctly. Example
Fiddle



 类似资料:
  • 问题内容: 使用$ http,我们可以这样做: 我想用$ resource引用做同样的事情(不起作用): 与这样声明的相应服务: 它不起作用:config对象转到url而不是http标头。 有没有办法做到这一点 ? 问题答案: 对于是因为AngularJS 1.1.1可用。确保您使用了正确的版本。 格式为 [以上内容似乎不正确。$ resource的第三个参数应该不同。这对我来说似乎更正确:

  • 问题内容: 我一直在一些存储库中使用自定义操作。到目前为止,我只需要指定url和方法。 例如: 但是随后,我不得不编写一个自定义操作,该操作不包含一个,而是两个路径参数: 所以我首先将其编码为: 但这是行不通的。参数未传递。 经过几次尝试,我发现在自定义操作定义之前添加一些参数定义可以正常工作。 它必须像: 请注意以下情况: 当时我的理解是,在$ resource定义中,具有多个路径参数的自定义操

  • TensorFlow GraphDef based models (typically created via the Python API) may be saved in one of following formats: TensorFlow SavedModel Frozen Model Session Bundle Tensorflow Hub module All of above f

  • 问题内容: 我有一个C#/ Selenium / Specflow测试套件,正在使用xunit.console.exe使用Jenkins运行。我需要将这些测试指向不同的环境(Test / QA / Prod等),并想使用命令行参数。 我正在调用的批处理命令是: 并希望包含一个额外的参数,例如: “ -env = PROD”, 以将该作业指向特定的环境。 我愿意采取更好的方法。 问题答案: 对于此解

  • 目前,诸葛io的服务范围涵盖了企业内各项业务,除了用户行为指标外,还有很多结合业务场景的特有指标需要分析;如:注册率=注册成功人数/活跃用户数,分、秒之间的单位换算等。 因此,诸葛io平台中提供了基础指标之间的四则运算,可灵活定义符合业务场景的特有指标,并支持自定义指标的可视化分析,以及将指标添加到数据看板中进行持续的跟踪监测的功能。 一、有哪些常见应用场景 场景一 某音频APP,需要统计人均收听

  • Kubernetes中不仅支持CPU、内存为指标的HPA,还支持自定义指标的HPA,例如QPS。 本文中使用的yaml文件见manifests/HPA。 设置自定义指标 kubernetes1.6 在kubernetes1.6集群中配置自定义指标的HPA的说明已废弃。 在设置定义指标HPA之前需要先进行如下配置: 将heapster的启动参数 --api-server 设置为 true 启用cus