Как вы можете перенаправить на страницу входа в метод put, если пользователь не аутентифицирован в express.js?

0

Я хочу обновить базу данных с страницы angularjs с помощью метода $ http.put. Но если сеанс истекает, он показывает мне, как на сервере.

поместить метод на этот маршрут

PUT /api/categories 302 12.381 ms - 46

перенаправляется на эту страницу после аутентификации.

PUT /admin/login 404 14.374 ms - 4061

Проблема в том, что он не переходит на страницу входа, вместо этого он остается на одной странице. для перенаправления он должен быть GET/admin/login,

Могу ли я преобразовать метод из PUT в GET или, есть ли другой способ обхода?

Теги:
express
routes
rest

1 ответ

1
Лучший ответ

$http.put - это клиентский Javascript-вызов AJAX, сделанный Angular на сервер.

(302) Перенаправление может выполняться только в том случае, если запрос был сделан браузером.

Что вам нужно сделать, так это то, что ваш клиентский код Javascript скажет браузеру перенаправить. Это делается сбросом window.location. Сделайте это в $http.put следующим образом:

$http.put(…).
success(function(){
    …
}).
error(function(d,status){
    if(status==404) window.location = '/admin/login';    
}); 
  • 0
    работал как шарм. Кстати, почему он перенаправляет для методов GET и POST, но не для методов PUT или DELETE? нельзя ли отправить статус 302 для методов PUT или DELETE?
  • 0
    Если это чисто AJAX назвать это не должно перенаправлять на всех, как переадресовывает только обрабатываются браузером. Вы говорите, что $http.post обрабатывает для вас перенаправление, а $http.put - нет? Если это так, я могу только представить, что у вас уже должна быть логика обработки перенаправления в ваших вызовах http.post.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню