我正在尝试添加一个检查用户的before_action
,如果没有用户,则将json返回到角度应用程序,状态为401。
该功能只是
def authenticate_user
if !logged_in
render json: {:status => 401}
end
end
然而,这永远不会到达我的httpInterceptor
并将json直接呈现给页面。如何使用正确的标题返回此响应,以便拦截器可以处理401?
app.run(function($http, $cookies, $rootScope, $location) {
$http.defaults.headers.common['X-CSRFToken'] = $cookies.csrftoken;
$http.defaults.headers.common['Content-Type'] = 'application/json';
});
app.factory('myHttpInterceptor', ['$cookies', '$location', '$window',
function($cookies, $location, $window) {
return {
'request': function(config) {
return config
},
'response': function(response) {
if ($location.$$path !== '/' && !$cookies.csrftoken){
$location.path('/');
}
return response
}
}
}
]);
答案 0 :(得分:0)
您是否将拦截器添加到httpProvider?
app.config(function($httpProvider) {
$httpProvider.interceptors.push('myHttpInterceptor');
})
请参阅:https://docs.angularjs.org/api/ng/service/ $ http