为了账号安全,请及时绑定邮箱和手机立即绑定

res.redirect() 没有将我重定向到任何页面,没有错误,有人可以解释这里发生了什么吗?

res.redirect() 没有将我重定向到任何页面,没有错误,有人可以解释这里发生了什么吗?

蝴蝶刀刀 2022-10-08 10:39:29
一切都按预期工作,但是,我希望我的用户在发送消息后立即切换到不同的 url,所以在他向服务器发送 ajax 发布请求后,我试图将他/她从服务器中的 res 变量重定向. 我确信 client.js 没有任何问题,但是 res.redirect 将我重定向到哪里,我在同一页面上,在消息发送后。没有错误。并且两个 console.log 语句都在执行,所以 res.redirect 可能有问题,请有人告诉我该怎么做。基本信息:我在客户端使用 express 服务器、nodejs 和 javascript。客户端.js$(document).ready(    message='');function getmessagefrominput(){    var message =$('#message');    var value = message.val();    message.val('');    return value;}function appendmessage(message){    var messagecontainer =document.getElementById('messages');    //console.log(messagecontainer);    var mymessage= document.createElement("div")    mymessage.setAttribute('class','sentmessagecontainer')    var newmessage= document.createElement("p")    newmessage.setAttribute('class','sent')    newmessage.textContent=message;    mymessage.appendChild(newmessage);    messagecontainer.appendChild(mymessage);}function sendmessage(username,friend){    var message=getmessagefrominput();    //console.log('{from:'+username+',to:'+friend+',message:'+message+'}')    if(message!=null && message!=''){                var jqxhr =$.post( "/ajax/newmessage", { from:username,to:friend,message:message } , ()=>{appendmessage(message);});    }  }服务器.jsconsole.log('trying to redirect');    res.redirect('/'+obj.from+'/direct/inbox/'+x);    console.log('ok redrected');
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

当您执行 ajax 时,它会向服务器发起一个单独的请求,重定向不会影响主线程(无论 ajax 请求上的重定向如何,页面都保持不变)。

如果要重定向页面,则需要document.location.href在 Ajax 回调或请求中使用 with <form>,这将用重定向可能影响的请求替换您的页面。


查看完整回答
反对 回复 2022-10-08
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信