2014-10-27 73 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