javascript - 在表单提交之前发送 Ajax 请求

标签 javascript html

是否可以在表单的 onsubmit() 中发送 ajax 请求?我一直在尝试,结果不稳定,主要是因为如果浏览器发送我的请求的时间恰好比发送原始表单所花费的时间长,那么一旦加载页面的位置发生变化,我的请求就会被丢弃,所以有时它从来没有打过服务器。

基本上,我想做的是添加一个收集登录事件的审核日志收集器,我想以最小的入侵将其挂接到现有应用程序。

最佳答案

这很容易实现。只需在 AJAX 请求完成后才提交表单。

让您的表单 onsubmit 属性调用 AJAX 函数并返回 false(这会取消表单提交)。当您的 AJAX 调用完成时,以编程方式提交表单。

例如:

<form name="myform" onsubmit="javascript: startAjax(); return false;">
...
<script type="text/javascript">
function startAjax() {} // Calls ajaxComplete() when finished

function ajaxComplete()
{
  document.myform.submit();
}
</script>

关于javascript - 在表单提交之前发送 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263526/

相关文章:

html - 为什么在Safari移动设备上使用Dosis会产生奇怪的字体渲染?

javascript - 如何使用JSON数据设置Div内容

javascript - 加载时使登录状态为true

javascript - 使用输入按钮提交无格式的“表单”

javascript - 如何使用javascript自动提交表单(onevent)?

javascript - 默认情况下以编程方式固定 chrome 扩展图标

javascript - 单击按钮时在Angular中选择多个复选框

javascript - Kue worker 与 createClientFactory : only subscriber commands may be used

javascript - 无法使用导入的 json 将对象转换为原始值

javascript - 在手机上查看时隐藏边框