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

一切都按预期工作,但是,我希望我的用户在发送消息后立即切换到不同的 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);});

    }  

}

服务器.js


console.log('trying to redirect');

    res.redirect('/'+obj.from+'/direct/inbox/'+x);

    console.log('ok redrected')

;


蝴蝶刀刀
浏览 184回答 1
1回答

心有法竹

当您执行 ajax 时,它会向服务器发起一个单独的请求,重定向不会影响主线程(无论 ajax 请求上的重定向如何,页面都保持不变)。如果要重定向页面,则需要document.location.href在 Ajax 回调或请求中使用 with&nbsp;<form>,这将用重定向可能影响的请求替换您的页面。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript