Asp.Net jQuery $.getJSON 有时会导致整页回发?
Posted
技术标签:
【中文标题】Asp.Net jQuery $.getJSON 有时会导致整页回发?【英文标题】:Asp.Net jQuery $.getJSON sometimes causes full page postback? 【发布时间】:2010-09-18 20:55:14 【问题描述】:我正在编写一个 ASP.NET 网络表单应用程序,并且我正在使用 jQuery 进行 AJAX 调用。这运行良好,但在某些情况下,$.getJSON 调用会导致整页回发。我没有在应用程序的任何地方使用 ASP.NET AJAX 库。我无法始终如一地重现该问题,并且不确定是什么原因造成的。这是我正在使用的 jQuery 代码。有人遇到过这个吗?是否有可能之前的 AJAX 调用可能没有完成,并且请求重叠?
function getActionMismatch(id)
setPageElementVisibility();
$(".ActionDetailArea").slideUp("fast");
$("#AjaxLoader_Action").show();
$.getJSON("Main.aspx?Callback=GetMismatch",
MismatchId: id ,
function(result)
$("#adMismatchId").text(result.MismatchId);
$("#adAuthMerchId").text(result.AuthorizationMerchantId);
$("#adSttlMerchId").text(result.SettlementMerchantId);
$("#adCreateDate").text(formatJSONDate(Date(result.AppendDts)));
$(".ActionDetailArea").slideDown('fast', toggleBlock('...click Adjust Promo to enter details', true));
$("#AjaxLoader_Action").hide();
);
return false;
【问题讨论】:
【参考方案1】:你是如何触发那个 javascript 函数的?
如果它是按钮等控件上的客户端单击处理程序,则需要确保调用 preventDefault()。否则,浏览器将提交表单并导致回发,即使在 AJAX 回调正在进行时也是如此。
【讨论】:
【参考方案2】:在某些情况下,当 jQuery 无法进行 AJAX 调用时,它会创建一个隐藏的 iframe 并从那里进行正常提交。我猜想这个过程是如何崩溃的。
【讨论】:
但是我可以在 getJSON 中使用任何其他函数来确定遇到的错误或确定调用何时完成?以上是关于Asp.Net jQuery $.getJSON 有时会导致整页回发?的主要内容,如果未能解决你的问题,请参考以下文章
支持 JSONP 的 ASP.NET 通用 HTTP 处理程序 (.ashx)
asp.net mvc 3.0 前台getJson方法获取不到后台的数据,调试的时候后台已经有数据返回了
Asp.net Core 3.1 - 用 Ajax 打开视图?