Воспроизведение Scala — вызывающий метод контроллера из представления не загружает новую страницу

#ajax #scala #playframework #jscript

#ajax #scala #playframework #jscript

Вопрос:

Я отображаю информацию, собираю вводимые пользователем данные и вызываю метод контроллера с помощью вызова ajax / java script из представления. Однако вместо отображения новой / другой HTML-страницы метод контроллера возвращает обратно к исходной HTML-странице, с которой я вызвал jscript.

Это из-за вызова ajax? Как мне убедиться, что метод контроллера будет отображать HTML-файл, который он должен, вместо того, чтобы оставаться на старой HTML-странице?

Комментарии:

1. Вам действительно нужно предоставить некоторые дополнительные сведения, чтобы получить большую помощь. Но похоже, что вам нужно использовать метод create a separate controller для действия POST, сгенерированного вашей формой.

2. Да, у меня есть метод контроллера, который вызывается. Проблема в том, что все в порядке (nextveiw.scala.html ) не вызывает следующее представление. Вместо этого продолжает отображаться старая страница.

3. исправьте теги… что для вас воспроизведение?

Ответ №1:

Мне кажется, что вы хотите открыть другой URL, отличный от того, на котором вы находитесь. Для этого вы не используете ajax. Вместо этого попробуйте использовать javascript для изменения window.location , чтобы указать браузеру перейти к URL-адресу (или «вызвать ваш контроллер»). Это выглядит так:

 window.location.assign("/your/controller/url"); // or
window.location = "/your/controller/url";
  

Подробнее об этом можно прочитать здесь:https://developer.mozilla.org/en-US/docs/Web/API/Window .Расположение

Вы можете представить ajax как отдельный маленький браузер, который позволяет вам вызывать веб-сервер, но позволяет обрабатывать то, что возвращается с помощью javascript, а не всегда показывать это пользователю. Поэтому, если вы хотите выполнить вызов с помощью ajax, но получить HTML-ответ на свою страницу, вы несете ответственность за получение этого ответа и вставку его в DOM.