首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Node.js res.redirect()中包括JSON

问在Node.js res.redirect()中包括JSON
EN

Stack Overflow用户
提问于 2016-07-20 23:04:06
回答 1查看 7.2K关注 0票数 4

message 变量的JSON内容可以从Node.js服务器发送到AngularJS客户机?

以下代码位于Node.js应用程序的路由文件中。下面的代码生成JSON,然后将控件重定向到redirectURL='/'处理程序,后者将./public/index.html文件发送给AngularJS客户端。

在此事务中将JSON message发送到AngularJS客户端非常重要,这样AngularJS浏览器应用程序就可以负责维护用户的唯一身份。这样,来自AngularJS浏览器应用程序的后续请求可以由这个Node.js应用程序的任何一个克隆来处理,每个克隆将使用它在每个请求中接收到的JSON与一个Redis集群连接,以便跨多个请求管理用户身份。这将使Node.js不必记住用户身份。

代码语言:javascript
复制
app.get('/some_endpoint', function(req, res) {
    var redirectURL = '/';
    request.post(otherServerUrl, function(err, response, body){
        if(err){console.log('ERROR with token request.')}
        var data = JSON.parse(body);
        getUser(data.access_token).then(function(message) {
            console.log('in callback, jwtJSON is: ');console.log(message);
            res.redirect(redirectURL);
        });
    });
});

app.get('*', function(req, res) {
    res.sendfile('./public/index.html'); // load the single view file (angular will handle the front-end)
});

注意,app.get('*', function(req, res) 还需要能够处理未从 app.get('/some_endpoint', function(req, res) 重定向的用户的请求,这些用户在服务器上没有任何 message JSON可发送到浏览器应用程序.。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 21:07:56

如果您试图将信息传递给将从重定向加载的页面,那么通常的方法是将信息编码为重定向URL上的查询参数。

这将通过重定向传递到新加载的页面,然后该页面可以解析查询参数以获取信息。

还可以在重定向之前将信息放入cookie中,并让重定向页面从cookie获取信息,但是如果您在重定向过程中使用不同的域,则cookie可能复杂或不切实际(因为cookie与特定域相关联)。

不能只返回带有重定向响应的JSON,因为重定向不会将JSON传递到重定向页面--这不是重定向工作的方式。重定向只加载对应于新URL的页面。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38492269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档