Tôi đang sử dụng trình chặn đánh chặn rất đơn giản để kiểm tra phản hồiRutection cho 403 Truy cập bị cấm để chuyển hướng người dùng đến thông tin đăng nhập, nhưng nó không chuyển hướng. Tôi có thể console.log ngay lên dòng trước $ location.path và sau nó, và nó không bao giờ xảy ra. Có ai khác đã xảy ra chuyện này không? Tôi đã nhìn chằm chằm vào điều này một chút bây giờ ... Ban đầu tôi thậm chí không muốn sử dụng $ vị trí, nhưng tôi không thể tiêm ui.router mà không nhận được một phụ thuộc vòng tròn, mà tôi cũng không thể tìm ra cách để thoát khỏi vị trí như vậy được cho là để giữ cho tôi di chuyển, trong khi tôi nghĩ về nó.AngularJS chuyển hướng không xảy ra trong máy bay đánh chặn
.factory('AuthInterceptor', ['$q', '$location',
function($q, $location) {
var service = {
responseError: function(responseRejection) {
// Authorization issue, access forbidden
if(responseRejection.status === 403) {
// TODO: show a login dialog, and/or redirect to login
console.log("Response rejected. Redirecting to login...");
$location.path('/login');
$location.replace();
console.log("Not so much with the redirecting... I'm still here");
}
// Propagate error to any chained promise handlers
return $q.reject(responseRejection);
}
}
return service;
}])
Khi bạn làm '$ location.path' tuyên bố bên cạnh nó sẽ chạy vì sự thay đổi đường dẫn sẽ chỉ xảy ra trong tiêu hóa chu kỳ tiếp theo. Bạn không thể trực tiếp có thể tiêm '$ state' thay vì bạn có thể tiêm' $ injector' và nhận '$ injector.get ('$ state'). Go (statename)'. Cũng thiết lập đường dẫn vị trí hoặc href vv không chặn hoạt động, có nghĩa là nó sẽ cho phép các kịch bản hiện tại để thực hiện hoàn toàn và sau đó thay đổi locaiton. – PSL
Cảm ơn, tiêm $ injector hoạt động và tôi không biết về hoạt động không chặn nên cảm ơn bạn lần nữa :) Bạn nên thả câu trả lời này vào bên dưới để có thể nhìn thấy rõ hơn và bạn nhận được nhiều tín dụng hơn. Cảm ơn một lần nữa – mtpultz
Vui vì nó hoạt động. Chắc chắn, tôi sẽ thả một câu trả lời. – PSL