2014-10-27 84 views
0

我正在使用HightCharts库在Play框架下绘制一些图表。当用户点击图表时,我设置了一个ajax请求。请求返回一个结果页面呈现。我想执行重定向到呈现的页面。ajax请求后呈现页面

这是我的请求的代码片段:

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语句:

return ok(template.render(
          RolesDao.getRole(session().get("role")), 
          session("email"), 
          Template.getList(apikey), 
          segmentId.toString())); 

我如何能做到这一点任何想法?

+0

hm你究竟想要达到什么目的?用图表替换页面到ajax的新页面? – biesior 2014-10-27 16:11:01

+0

@ biesior其实你是对的。我更新了我的帖子。 (我不确定这是否可能,也许这是一个不好的做法。) – 2014-10-27 16:20:24

回答

1

通过您的ajax动作,您不会无法返回呈现的页面(事实上的HTML代码),而只是创建链接到页面,该页面将呈现为普通Result。注意:如果参数可能包含某些凭据等敏感数据,则需要增加一些工作量,即在AJAX操作中将参数集保存在数据库或缓存中,并使用一些唯一ID和随机安全令牌,并使用此返回重定向URL ID和安全令牌,稍后您将能够使用给定的ID检索这些凭证并在目标操作中呈现视图。安全令牌旨在防止抓取工具遭到未经授权的访问。

事实上,使用内置缓存API,您可以将Result放在缓存中,因此它可能是相当快的解决方案。

+0

所以,对我来说最好的办法是重定向我想要的页面,如果我有参数传递,将它们传递给查询字符串? – 2014-10-27 16:36:19

+0

编辑答案,我不会使用GET参数中的凭证,使用无法重新设计的东西,至少很容易... – biesior 2014-10-27 16:48:53