【发布时间】:2015-08-19 10:40:04
【问题描述】:
我的目标是创建一个链接,该链接重定向到外部 URL 并跟踪操作系统、浏览器等客户端数据。
为了实现这一点,我创建了两条单独的路线。一个客户端路由,重定向到跟踪客户端数据并重定向到服务器路由的模板。
这是我的路线:
Router.route('/:_id', {name: 'url', controller: 'UrlController'});
Router.route('/redirect/:_id', {name: 'urlRedirect', where: 'server'}).get(function () {
var url = Urls.findOne(this.params._id);
if (url) {
this.response.writeHead(302, {
'Location': url.url
});
this.response.end();
} else {
this.redirect('/');
}
});
UrlController = RouteController.extend({
action: function () {
this.render('redirect');
},
data: function () {
return Urls.findOne(this.params._id);
}
});
这是模板:
Template.redirect.onRendered(function () {
var client = new ClientJS(); // Create A New Client Object
var userAgent = client.getUserAgent(); // Get User Agent String
console.log(userAgent);
Router.go('urlRedirect', {_id: this.data._id});
});
现在我的问题是,是否可以从服务器路由收集客户端数据(我是否需要从:_id 到/redirect/:_id 的内部重定向)?
如果用户被重定向并点击浏览器的“返回”按钮,他将看到空的redirect 模板。我该如何解决这个问题?
【问题讨论】:
标签: javascript redirect meteor