如果用户未在 express.js 中进行身份验证,如何使用 put 方法重定向到登录页面?

How can you redirect to login page on put method if the user is not authenticated in express.js?

我想使用 $http.put 方法从 angularjs 页面更新数据库。 但是如果会话过期,它会在服务器上显示这些。

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';    
});