我想在用户尝试提交表单时发出 AJAX 请求。但是,我不想等待响应(我只想触发脚本)并仍然立即提交表单(或重定向用户)。
我尝试用这种方式(通过 jQuery):
$(document).ready(function()
{
$("#form").submit(function(e)
{
// save object reference
var form = this;
// prevent form submit
e.preventDefault();
// trigger ajax request
$.ajax({
url: 'ajax.php',
data: { ... },
cache: false
});
// submit form
form.submit();
// return false just in case
return false;
});
});
但这行不通,因为如果之后立即提交表单(通过 form.submit()),浏览器实际上不会发送 AJAX 请求
).
我在这里有点困惑...真的没有办法触发 AJAX 请求并立即重定向浏览器吗?
最佳答案
看来你在这里创建了一个无限循环。您正在阻止提交事件并在最后再次提交它,但是当您将函数绑定(bind)到表单的提交时,它将被一遍又一遍地调用。相反,尝试使用 Ajax 状态,例如成功和完成;成功后,您提交数据,完成后重定向页面。
关于javascript - 在表单提交时执行ajax请求,不等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19383985/