Я хочу обновить базу данных с страницы angularjs с помощью метода $ http.put. Но если сеанс истекает, он показывает мне, как на сервере.
поместить метод на этот маршрут
PUT /api/categories 302 12.381 ms - 46
перенаправляется на эту страницу после аутентификации.
PUT /admin/login 404 14.374 ms - 4061
Проблема в том, что он не переходит на страницу входа, вместо этого он остается на одной странице. для перенаправления он должен быть GET/admin/login,
Могу ли я преобразовать метод из PUT в GET или, есть ли другой способ обхода?
$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';
});
$http.post
обрабатывает для вас перенаправление, а$http.put
- нет? Если это так, я могу только представить, что у вас уже должна быть логика обработки перенаправления в ваших вызовах http.post.