为啥我的 Ajax 发布请求在表单提交中被阻止?
Posted
技术标签:
【中文标题】为啥我的 Ajax 发布请求在表单提交中被阻止?【英文标题】:Why my Ajax post request is blocking in form submit?为什么我的 Ajax 发布请求在表单提交中被阻止? 【发布时间】:2010-10-22 19:32:26 【问题描述】:场景:在 html 输入控件的 onblur 事件中,我将异步 HTTP 帖子发送到资源,即 t.aspx。
我不关心它是否会返回,但是,如果用户单击提交,我希望表单提交。
我从使用我们的模拟器中看到的是,当我将 t.aspx 减慢到需要 10 秒(page_load Thread.Sleep(10000))时,当我单击提交时,它会继续等待 10 秒的剩余时间,然后提交。
我需要立即提交表单。下面是一个sn-p的ajax代码
var _requestData = " " + "\"subject\": " + "\"param1\": \"" + $("#param1").val() + "\", " + "\"param2\": \"" + $("#param2").val() + "\" " + "" + " ";
$.ajaxSetup(
url: "t.aspx",
type: "POST",
processData: false,
contentType: "application/json",
dataType: "json",
success: sucessfulCallback,
error: unsucessfulCallback
);
$.ajax(
data: _requestData
);
我也尝试过var myAjax = $.ajax
.....并在表单提交中调用myAjax.abort()
。那里也没有运气。
任何帮助将不胜感激......
问候 大卫
【问题讨论】:
【参考方案1】:您没有提及您正在运行的 Jquery 版本。旧版本有一个已知错误,正如您所描述的那样:http://dev.jquery.com/ticket/2935。
【讨论】:
【参考方案2】:在服务器端,您需要检查用户是否仍然与服务器连接。通过使用以下命令。
if (!Response.IsClientConnected)
// process user request
【讨论】:
以上是关于为啥我的 Ajax 发布请求在表单提交中被阻止?的主要内容,如果未能解决你的问题,请参考以下文章
JQuery.Validate 插件可以阻止提交 Ajax 表单吗
无法通过 onSubmit 属性触发的 Ajax 响应阻止表单提交。