我正在使用HightCharts库在Play Framework下绘制一些图表。我在用户点击图表时设置了ajax请求。请求返回一个带有页面呈现的Result。我想重定向到渲染页面。
这是我的请求的代码段:
plotOptions:{
column:{
colorByPoint: true
},
series: {
cursor: 'pointer',
point: {
events: {
click: function (event) {
var jsonMsg = JSON.stringify({category: data.categories[event.point.y], product: data.products[event.point.x]});
$.ajax({
type: 'POST',
url: '@namespace.controllers.modules.routes.MailchimpController.createSegmentByCorrelation()',
data: jsonMsg,
contentType : 'application/json; charset=utf-8',
dataType: 'json'
});
}
}
}
}
}
这是我的回复声明:
return ok(template.render(
RolesDao.getRole(session().get("role")),
session("email"),
Template.getList(apikey),
segmentId.toString()));
关于我如何做到的任何想法?
答案 0 :(得分:1)
使用您的ajax操作,您无法返回呈现的页面(事实上是HTML代码),而只是创建指向页面的链接,该页面将呈现为常见Result
。
注意:如果参数可以包含某些凭据等敏感数据,则值得添加一些工作,即在AJAX操作中使用一些唯一ID和随机安全令牌保存DB或Cache中的参数集,并返回带有此ID的重定向URL和安全令牌,稍后您将能够使用给定的ID检索这些凭据并在目标操作中呈现视图。安全令牌是为了防止抓取工具进行未经授权的访问。
事实上,使用内置缓存API,您可以将Result
放在缓存中,因此它可以是非常快速的解决方案。