2014-10-27 8 views
0

Я использую библиотеку HightCharts для рисования некоторых диаграмм в Play Framework. Я настроил 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 ok(template.render(
          RolesDao.getRole(session().get("role")), 
          session("email"), 
          Template.getList(apikey), 
          segmentId.toString())); 

Любые идеи о том, как я могу это сделать?

+0

hm Что именно вы хотите достичь? заменить страницу на диаграмму на новую страницу из ajax? – biesior

+0

@biesior на самом деле вы правы. Я обновил свой пост. (Я не уверен, что это возможно, и, возможно, это плохая практика.) –

ответ

1

С вашим действием ajax вы не можете вернуть отображаемую страницу (код HTML de facto), вместо этого просто создайте ссылку на страницу, которая будет отображаться как обычная Result.

Примечание: если параметры могут содержать конфиденциальные данные, такие как некоторые учетные данные, стоит добавить некоторые усилия, то есть в действие AJAX сохранить набор параметров в БД или кэше с помощью уникального идентификатора и случайного маркера безопасности и вернуть URL-адрес перенаправления с этим ID и токен безопасности, позже вы сможете получить эти учетные данные с помощью заданного идентификатора и отобразить представление в своем целевом действии. Маркер безопасности должен предотвращать несанкционированный доступ сканеров.

Фактически, используя встроенный кэш-интерфейс API, вы можете просто положить Result в кеш, так что это может быть довольно быстрое решение.

+0

Итак, для меня лучше всего перенаправить страницу, которую я хочу, и если у меня есть параметры для передачи, передайте их в строке запроса? –

+0

Отредактировав ответ, я бы не использовал учетные данные в параметрах GET, используйте то, что не может быть реконструировано, по крайней мере, легко ... – biesior

Смежные вопросы