message 变量的JSON内容可以从Node.js服务器发送到AngularJS客户机?
以下代码位于Node.js应用程序的路由文件中。下面的代码生成JSON,然后将控件重定向到redirectURL='/'处理程序,后者将./public/index.html文件发送给AngularJS客户端。
在此事务中将JSON message发送到AngularJS客户端非常重要,这样AngularJS浏览器应用程序就可以负责维护用户的唯一身份。这样,来自AngularJS浏览器应用程序的后续请求可以由这个Node.js应用程序的任何一个克隆来处理,每个克隆将使用它在每个请求中接收到的JSON与一个Redis集群连接,以便跨多个请求管理用户身份。这将使Node.js不必记住用户身份。
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可发送到浏览器应用程序.。
发布于 2016-07-21 21:07:56
如果您试图将信息传递给将从重定向加载的页面,那么通常的方法是将信息编码为重定向URL上的查询参数。
这将通过重定向传递到新加载的页面,然后该页面可以解析查询参数以获取信息。
还可以在重定向之前将信息放入cookie中,并让重定向页面从cookie获取信息,但是如果您在重定向过程中使用不同的域,则cookie可能复杂或不切实际(因为cookie与特定域相关联)。
不能只返回带有重定向响应的JSON,因为重定向不会将JSON传递到重定向页面--这不是重定向工作的方式。重定向只加载对应于新URL的页面。
https://stackoverflow.com/questions/38492269
复制相似问题