如何在fetch post调用后管理重定向请求
How to manage a redirect request after a fetch post call
我正在使用fetch与节点服务器(Express)通信。我正在建一个SPA。每次向服务器发出请求时,我都会检查会话是否有效。如果会话无效,我将从节点重定向到登录页面。问题是。如果会话无效(例如:在没有页面刷新的情况下在后台运行get/post请求),则请求将以静默方式失败。它没有被重定向。
对于ajax请求,我也遇到了同样的问题。我所做的是检查请求是xhr并接受json。然后发送一个json响应并在前端处理重定向。
if (req.xhr && req.accepts('json')) {
res.json({status:'session_timeout'});
}else{
res.redirect('/login');
}
我怎么能用fetch来做同样的事情呢。如何使用fetch和node处理重定向。
我不确定您的代码是如何确定会话是否有效的。看起来您正在测试该请求是否是您从浏览器发送的请求,如果是,则使用json进行响应。
在这种情况下,什么时候会触发重定向?如果您总是从浏览器发送请求,它将永远不会发送到重定向语句。
您是否尝试过使用passport进行用户身份验证?很容易设置可以包含在所有端点中的中间件,这样,如果用户还没有登录,每个请求都会被重定向
例如:
function isLoggedIn(req, res, next) {
if (req.isAuthenticated())
return next();
res.redirect('/');
}
然后在你的api中:
app.get('/yourendpoint', isLoggedIn, function(req, res) {
/*response here*/
});
});
相关文章:
- 通过javascript重定向html传递php变量
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 使用angular重定向到html页面
- 如何在chrome扩展中重定向到html页面
- 无法从jquery Mobile导航栏重定向到另一个页面
- ng视图外的链接重定向到ng视图内的页面
- 在phonegap应用程序内部重定向不起作用
- CORS-重定向到第二个GET正在接收的页面
- AJAX不会在文件上传后重定向到网页-POST方法
- 重定向时角度刷新浏览器
- 通过链接重定向不;我不在jstree中工作
- 根据select选项元素将表单重定向到不同的URL
- 通过JQuery重定向到另一个页面
- 如何在fetch post调用后管理重定向请求
- 使用变量和谷歌跟踪代码管理器重写和重定向网址
- 使用 XMLHttpRequest 进行 302 重定向后的 Cookie 管理
- 可以't使用node.js管理重定向
- 在自定义授权期间强制ajax .fail()来管理登录重定向
- 响应.重定向消除了脚本管理器操作
- 如何在 jQuery Ajax 调用后管理重定向请求