代码如下,
$.ajax(
        {
         type: "POST",
         contentType: "application/json",
         dataType: 'json', 
         success: function(result) {
 //这里是Code          },
         error: function(result, status) { 
          
         }
        });问题是:如何ajax异步请求成功,正在执行回调函数,此时如何在一个button的click事件中取消此回调函数的继续执行?

解决方案 »

  1.   


    click的时候,调用function () {return;}终止程序
      

  2.   

    $.ajax(
      {
      type: "POST",
      contentType: "application/json",
      dataType: 'json', 
      async:false,//取消异步请求
      success: function(result) {
     //这里是Code   },
      error: function(result, status) { 
       
      }
      });(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。API上有  多看看吧
      

  3.   

    function () {return;} 怎么终止回调函数啊?能否再说详细点?
      

  4.   

    應該可以用abort()方法,
    可以試試如下試試var xmlHttp = $.ajax(
      {
      type: "POST",
      contentType: "application/json",
      dataType: 'json',  
      success: function(result) {
     //这里是Code    },
      error: function(result, status) {  
        
      }
      });
    xmlHttp.abort();
      

  5.   

    http://topic.csdn.net/u/20091026/16/422595f1-d449-4844-9122-2605a6d0f6a2.html
      

  6.   

    我记得微软的ASP.NET AJAX里是可以这么实现的,实现的原理就是判断异步请求是正在进行中,如果是的 ,此时是可以取消异步请求的,但是这个和楼主的想法还是有些不一样的,异步请求成功且已经在执行回调函数了,这个过程应该是无法干预的吧, 我想。
      

  7.   

    设一个JS的全局变量STOPIT,初始值为FLASE.
    在BUTTON的点击事件里设此变量为真.
    在AJAX的回调函数的开头加上:
    if(STOPIT) return;
    这样试试看
      

  8.   

    当然,这也是要更改回调函数的.因为你说的,执行已经到回调函数里,你想改变它的流程,也只能在里面进行控制.毕竟这个不象你能按CTRL+ALT+DEL就能把它给毙了的.
      

  9.   

    BUTTON的点击事件里 onclick="STOPIT=!STOPIT;" 这样做成开关式可能更方便控制.