如何在每次使用后清除ajaxSetup?

时间:2013-07-20 20:21:41

标签: jquery

我正在做一个非常简单的xhr模拟示例,并且需要能够设置返回成功(在此特定示例中我也不能使用库)。

  function fakeHttpRequest(json) {                                                      
    $.ajaxSetup({
      complete: function() {
        this.success.call(this, json);
      }
    });
  }

我上面所做的工作很有效,除非我调用它3次,我使用它的最后一次集成测试会返回3次不同的时间(而不是我预期的1次)。是否可以调用它并清除它或在测试之间重置它?

更新

这是我最终的结果

function fakeHttpRequest(json) {
   jQuery.ajax = function(opts) {
     opts.success(json);
   }
}

1 个答案:

答案 0 :(得分:0)

如果您只需假冒ajax成功回复,您可以随时伪造它(see this question):

var fakeResponse;

$.ajax = function( options ) {
  options.success( fakeResponse );
}

你只需要在对象调用$ .ajax之前设置fakeResponse,它就会调用对象的success函数。