Javascript 在表单提交时执行ajax请求,不要等待响应
我想在用户尝试提交表单时发出AJAX请求。但是,我不想等待响应,我只想触发一个脚本,仍然立即提交表单或重定向用户 我试图通过jQuery以这种方式来实现:Javascript 在表单提交时执行ajax请求,不要等待响应,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我想在用户尝试提交表单时发出AJAX请求。但是,我不想等待响应,我只想触发一个脚本,仍然立即提交表单或重定向用户 我试图通过jQuery以这种方式来实现: $(document).ready(function() { $("#form").submit(function(e) { // save object reference var form = this; // prevent form submit e.p
$(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请求并立即重定向浏览器吗?看起来您在这里创建了一个无限循环。您正在阻止提交事件并在最后再次提交它,但是当您将函数绑定到表单提交时,它将被反复调用。相反,尝试使用Ajax状态,如success和complete;成功后提交数据,完成后重定向页面。为什么说没有进行ajax调用?您的网络选项卡对请求有何评论?@Archer和tymeJV:FireFox开发工具的网络选项卡不报告任何发送的请求,服务器也没有收到任何这样的请求。如果您将form.submit注释掉,会发生什么情况?ajax调用会起作用吗?@Archer是的,ajax调用会起作用。的确,这看起来像是一个无限循环,尽管从来没有无限循环发生过。表单由form.submit in.submitFunction{…}提交;浏览器打开表单定义的动作。我不想在成功时提交表单,因为AJAX调用的成功与表单提交无关,但可能需要很长时间。我只想在提交表单之前,通过这个AJAX调用在服务器上触发一个脚本。这是我的目标;。最后,我创建了一个不同的解决方案,独立于表单提交。