如果页面重定向/重新加载,则使用async = true设置jquery.ajax以将数据发送回服务器

时间:2010-09-03 05:11:38

标签: javascript asp.net jquery ajax

每当使用jquery.ajax(使用Asp.net 3.5)点击按钮/超链接时,我都会尝试保存一些内容。逻辑如下:

  • 通过jquery中的.bind,我将自己的方法(MakeLog)绑定到按钮单击或超链接点击。按钮/超链接的点击事件不包含任何内容,我需要使用.bind进行选择性控制。
  • 现在我们有一个按钮,其click事件将触发一个方法,比如MakeLog
  • MakeLog的代码段如下:

var xhr = jQuery.ajax({  
    url: "/Logger.aspx",  
    data: { content: logContent },  
    error: function(XmlHttpRequest, textStatus, errorThrown) {
        alert ("XmlHttpRequest: " +   XmlHttpRequest + 
               " textStatus: " + textStatus + "errorThrown: " + 
               errorThrown);
    },
    contentType: "Content-Type: text/html; charset=utf-8",  
    success: function (xml, txtStatus, XmlHttpRequest) {  
       //alert("xml" + XmlHttpRequest);  
    },  
    async: true  
});  
  • 这在IE中运行良好,但在Firefox中,这并不是按预期发送数据。
  • 我尝试找出问题并遇到以下问题:jQuery ajax calls async: false vs async: true
  • 我的理解是,当页面因按钮点击或超链接而重定向/重新加载时,单击异步调用无法正常工作。

1 个答案:

答案 0 :(得分:0)

这听起来像我在AJAX事件记录中遇到的类似问题。这可以通过JavaScript加载像素图像来解决。原因是页面加载中断XmlHttp请求(您的AJAX调用)。但是,加载图像不会被页面加载中断。

请参阅我之前发布的以下问题以供参考: AJAX GET race condition?