Headers 的 Restangular 响应拦截器
Restangular Response Interceptor for Headers
我正在从 angular 应用程序与服务器端通信以获取数据。服务器创建一个令牌并将其发送到 header。我正在寻找使用 Restangular 拦截响应并将其保存在 localStorage 中的方法。我没有成功。
我在我的应用程序 .config 中做了类似的事情
RestangularProvider.addResponseInterceptor('HttpInterceptor');
然后在 HttpInterceptor 中我调用 Storage 来存储 Header。但是我遇到了几个错误,无法弄清楚这一点。
提前致谢!
好吧,经过大量研究,我终于找到了适合我的解决方案。
所以在我的 app.js 中,我包含了这个:
.config(function ($stateProvider, $urlRouterProvider, RestangularProvider, $httpProvider) {
$httpProvider.interceptors.push('AuthInterceptor');
}
然后我使用 AuthInterceptor 服务进行 header 提取。
angular.module('myApp')
.factory('AuthInterceptor', AuthenInterceptor);
AuthenInterceptor.$inject = ['$localStorage'];
function AuthenInterceptor($localStorage) {
return {
response: function (response) {
var authToken = response.headers('You Token Name');
if (authToken) {
$localStorage.userToken = authToken;
}
return response;
}
};
}
希望对有类似问题的人有所帮助。谢谢!
我正在从 angular 应用程序与服务器端通信以获取数据。服务器创建一个令牌并将其发送到 header。我正在寻找使用 Restangular 拦截响应并将其保存在 localStorage 中的方法。我没有成功。
我在我的应用程序 .config 中做了类似的事情
RestangularProvider.addResponseInterceptor('HttpInterceptor');
然后在 HttpInterceptor 中我调用 Storage 来存储 Header。但是我遇到了几个错误,无法弄清楚这一点。
提前致谢!
好吧,经过大量研究,我终于找到了适合我的解决方案。
所以在我的 app.js 中,我包含了这个:
.config(function ($stateProvider, $urlRouterProvider, RestangularProvider, $httpProvider) {
$httpProvider.interceptors.push('AuthInterceptor');
}
然后我使用 AuthInterceptor 服务进行 header 提取。
angular.module('myApp')
.factory('AuthInterceptor', AuthenInterceptor);
AuthenInterceptor.$inject = ['$localStorage'];
function AuthenInterceptor($localStorage) {
return {
response: function (response) {
var authToken = response.headers('You Token Name');
if (authToken) {
$localStorage.userToken = authToken;
}
return response;
}
};
}
希望对有类似问题的人有所帮助。谢谢!