Как избежать обновления страницы в Firefox?Это не работает в Firefox - PullRequest
0 голосов
/ 04 февраля 2019

Я вызываю функции href и onclick, в функции onclick я вызываю функцию AJAX.Из-за перезагрузки страницы функция AJAX не работает в Firefox.Как я могу решить эту проблему?Ниже показана кнопка для вызова метода контроллера в href и функция AJAX в onclick.

<a ref="${pageContext.request.contextPath}/DepartmentUser/departmentUserLoginJnlp?userId=${userId}&var=sign&siteName=${siteName}">
    <button class="btn btn-primary btn-sm themebutton captureSign" type="button" id="captureSign" onclick="ajaxAsyncRequest()">Capture Signing Certificate Details</button>
</a>

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

После перехода по странице все запущенные сценарии останавливаются и вызовы AJAX отменяются.Если вы хотите, чтобы AJAX-вызов завершался, вам нужно отложить навигацию до его завершения.<button>, вложенный в элемент <a>, не будет работать для этого.

Если это вариант, я бы предложил поместить вызов href в функцию AJAX и удалить тег.Если вам нужен URL-адрес, заполненный jsp, поместите его в скрытое поле.

Примерно так (с использованием jQuery):

<button ... onClick="ajaxSyncRequest()">...</button>
<input type="hidden" id="myNextUrl" value="${pageContext.request.contextPath}/DepartmentUser/departmentUserLoginJnlp?userId=${userId}&var=sign&siteName=${siteName}"/>
<script>
function ajaxSyncRequest() {
  $.ajax({
    ...
    onSuccess: function () {
      window.location.href = $("#myNextUrl").val();
    }
  });
}
</script>
0 голосов
/ 04 февраля 2019

изменить

onclick = "ajaxAsyncRequest ()"

на

onclick = "ajaxAsyncRequest (); вернуть false;"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...