需要在客户端发起请求时指定重定向目标,并在服务器端进行相应处理。
以下是一个包含代码示例的解决方案:
客户端代码:
fetch('/api/login', {
method: 'POST',
body: JSON.stringify({
username: 'exampleUser',
password: 'examplePassword'
}),
redirect: 'follow'
})
.then(response => {
if (response.redirected) {
window.location.href = response.url;
}
})
.catch(error => console.error(error));
服务器端代码:
app.post('/api/login', (req, res) => {
// 根据请求内容验证用户名密码等信息,返回是否验证成功的结果
const validated = true;
if (validated) {
res.redirect('/dashboard');
} else {
res.redirect('/login');
}
});
在客户端的请求中,设置redirect
属性为follow
,表示在接收到重定向响应时跟随重定向。如果响应的redirected
属性为true
,则说明经过了重定向,可以通过url
属性获取重定向后的页面地址,并使用window.location.href
跳转到该地址。
在服务器端,根据请求内容验证后,可以通过res.redirect()
方法将请求重定向到指定页面。在本例中,成功验证后将重定向到/dashboard
页面,否则重定向到/login
页面。