res.redirect () не перенаправляет меня ни на одну страницу, ошибок нет, может кто-нибудь объяснить, что здесь происходит? - PullRequest
0 голосов
/ 16 июня 2020

Все работает, как ожидалось, но я хотел, чтобы мой пользователь переключился на другой URL-адрес, как только он отправит сообщение, поэтому я пытаюсь перенаправить его / ее из переменной res на сервере после того, как он отправит ajax отправить запрос на сервер. Я уверен, что с client. js все в порядке, но res.redirect перенаправляет меня не куда, я на той же странице, после того, как сообщение было отправлено. Ошибок нет. и оба оператора console.log выполняются, поэтому, вероятно, что-то не так с res.redirect, пожалуйста, кто-нибудь скажет мне, что делать.

Basi c Информация: Я использую express server, 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')

;

1 Ответ

0 голосов
/ 17 июня 2020

Когда вы выполняете ajax, он запускает отдельный запрос к серверу, перенаправление которого не повлияет на основной поток (страница остается неизменной независимо от перенаправления в запросе ajax).

Если вы хотите перенаправить страницу, вам нужно будет либо использовать document.location.href в обратном вызове Ajax, либо запрос с <form>, который заменит вашу страницу запросом, на который может повлиять перенаправление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...