为什么我在收到post请求时无法重定向到get路由器



配置文件.ejs

<body>
<div id="box">
<h1>Hello, <span><%= user.name %></span>!<hr> How are you doing?</h1>
<!-- <form action="/users/logout" method="POST"></form> -->
<button onclick="logout()">LOGOUT</button>
<!-- </form> -->
</div>
<script>
var userToken = document.cookie.replace('jwt=','')
// console.log(document.cookie)
// console.log(userToken)
function logout()
{
fetch('/users/logout', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + userToken
},
redirect: 'follow'
})
// .then(res => res.json())
.then(response=>{
if (response.redirected) {
window.location.href = response.url;
}
})
.catch(err => { console.log(err) })
}

</script>
</body>

app.js

app.post('/users/logout' ,async(req,res)=>{
try{
req.user.tokens = req.user.tokens.filter((token)=>{return token.token!=req.token})
await req.user.save()
// res.status(200).send({message:'Logged Out Successfully!'})
console.log('Logged Out Successfully!')
res.redirect('/')

}catch(e){
res.status(400).send(e)
}
})
app.get('/',(req,res)=>{
res.render('index')
console.log('ok')
})

令人惊讶的是,我从第二个路由器收到了"ok"的消息。然而,我没有重定向到它!网址不变!有人帮我做这个。我被困在这里很久了!

您应该使用window.location.pathname而不是window.location.href

最新更新