在Ajax期望响应时渲染视图

时间:2018-07-25 22:56:53

标签: ajax express

我正在构建一个Express项目,使用Ejs作为视图引擎,并使用Ajax进行前端调用。

当我发布这样的请求时:

$.ajax({
   type: 'POST',
   data: {'nickname' :  $('#nickname').val()},
   contentType: 'application/x-www-form-urlencoded',
   url: 'http://localhost:5000/create',
   success: function(data) {
     $('#message').text("Unkwon error");
   },
   error: function(data){
      $('#message').text('Something went wrong, check connection!');
   }

Ajax一直在等待我不愿给出的响应,因为我只想呈现如下视图:

app.post('/create', urlencodedParser, (req, res)=>{
   let code = unique.generate(rooms);
   res.render('chat', {'nickname' : req.body.nickname, 'code' : code}

有什么办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

经过研究,我找到了一种方法。

基本上,我可以告诉Ajax将从渲染发送的文档附加到html正文

$('body').html(data);

令人惊讶的是,这可以与Ejs动态代码一起使用。

我知道这不是最好的方法,但这是我到目前为止发现的唯一方法。

编辑1:

几个月后,我意识到解决方案很简单,只需使用javascript更改位置

window.location.replace(`http://localhost:5000/newRequest`);

现在,我可以在服务器上单独处理此新请求。