javascript - 尝试让 Jade 重定向页面

标签 javascript node.js pug

FB.setAccessToken(req.body.accessToken);
FB.api('/me', function(response) {
        Promise.try(function() {
                return routes.getUser(response);
        }).then(function(newResponse) { 
                res.render('groups', newResponse);
        }).catch(function(e) {
                console.error(e);
        });
});

客户端:

function checkToken(response){
    $.post('/auth', {
            id: response.authResponse.userID,
            accessToken: response.authResponse.accessToken
    });
}

一旦到达上面代码中 Promise 链的末尾,它应该将客户端重定向到一个新 View ,groups。运行应用程序时我没有收到任何错误。如何让 Jade 向客户发送新 View ?

是否可以渲染一个新 View 来替换当前 View ?或者我必须为此重定向页面(在客户端)?

最佳答案

Jade 是一个模板引擎,实际上与您的问题没有任何关系。 Express 处理路由,您可以使用路由来定义加载内容、加载位置和加载时间。

使用 $.post 进行 AJAX 调用不会重新加载您的页面(这是进行 AJAX 调用的主要目的)。根据您当前的代码,您需要向 $.post 添加回调调用,收到数据后,将当前页面的 HTML 替换为 AJAX 调用中的 HTML。您也可以执行类似 window.location.href = 'new page URL here'; 的操作.

最后但并非最不重要的一点是,你可以这样做res.redirect在服务器上,但它不会出现在当前显示的代码中。无论您使用哪种路径加载带有 JavaScript 的页面,都需要运行相同的服务器端逻辑,然后执行 res.redirect或者直接使用 res.render 加载正确的模板就在那时。

关于javascript - 尝试让 Jade 重定向页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35028555/

相关文章:

javascript - 使用 Jade 包含整个脚本目录?

javascript - Magic Line CSS/Javascript 代码 - 添加子导航

node.js - env 中的 RSA key 导致错误

javascript - 与 node.js 的 SSL 连接

java - 改造 Android 应用程序从 Node.js 服务器获取 JSON

angular - 有没有办法在 Angular 4 中使用 "template reference variable"?

javascript - onsubmit 中断 Jade View

javascript - 使用 jQuery 删除不同域中同名的 Cookie

javascript - 如何使用ajax动态替换Facebook共享链接的一部分

javascript - Google Analytics 中的 iOS 电话超链接 javascript 跟踪