我正在调用href和onclick函数,在onclick函数中,我正在调用AJAX函数。由于页面重新加载,AJAX功能在Firefox中无法使用。我该如何解决这个问题?下面显示了在href中调用控制器方法和在onclick中调用AJAX函数的按钮。
<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>
答案 0 :(得分:0)
更改
onclick =“ ajaxAsyncRequest()”
到
onclick =“ ajaxAsyncRequest();返回false;”
答案 1 :(得分:0)
页面导航后,所有正在运行的脚本都将停止,并且AJAX调用将被取消。如果要完成AJAX调用,则需要将导航延迟到完成为止。嵌套在<button>
元素中的<a>
对此不起作用。
如果可以选择,我建议将href调用放在AJAX函数中,并放下标签。如果需要用jsp填写的URL,请将其放在隐藏字段中。
类似这样的事情(使用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>