gpt4 book ai didi

angularjs - 使用 AngularJs 从响应中检索 header 并将其设置在所有请求上

转载 作者:行者123 更新时间:2023-12-02 01:46:03 24 4
gpt4 key购买 nike

我正在尝试使用 Angularjs 从响应的 header 之一检索 csrf token ,并将其设置在所有请求上。

我已成功使用响应拦截器从响应中读取它,如下所示:

 .factory('csrfResponseInterceptor', [function () {
return{
response: function(response){
console.log(response.headers('X-CSRF-TOKEN'));
return response;
}
}
}])

但我不确定如何在之后的所有请求上设置它。

不知何故,我需要使用 $httpProvider 服务进行设置,如下所示:

$httpProvider.defaults.headers.common['X-CSRF-TOKEN'] = response.headers('X-CSRF-TOKEN');

尽管如此,我还没有成功地将 $httpProvider 注入(inject)到拦截器中。

有人可以提供有关最佳实践的建议吗?

编辑:这是我注册拦截器的方式:

.config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.xsrfHeaderName = 'X-CSRF-TOKEN';
$httpProvider.interceptors.push('httpResponseInterceptor', 'csrfResponseInterceptor');
}])

最佳答案

我认为你可以在配置函数中这样做:

.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.xsrfHeaderName = 'X-CSRF-TOKEN';
$httpProvider.interceptors.push(function() {
return {
response: function(response) {
$httpProvider.defaults.headers.common['X-CSRF-TOKEN'] = response.headers('X-CSRF-TOKEN');
return response;
}
}
});
}]);

关于angularjs - 使用 AngularJs 从响应中检索 header 并将其设置在所有请求上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27332717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com