代码之家  ›  专栏  ›  技术社区  ›  Ahmed Hammad

当Ajax需要响应时呈现视图

  •  0
  • Ahmed Hammad  · 技术社区  · 8 年前

    我正在构建一个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 回复  |  直到 7 年前
        1
  •  0
  •   Ahmed Hammad    7 年前

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

    基本上,我可以告诉Ajax将从呈现发送的文档附加到HTML主体

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

    令人惊讶的是,这个事件与EJS动态标签一起工作。

    我知道这不是最好的方法,但这是我迄今为止唯一找到的方法。

    编辑1:

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

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

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