Javascript 如何模拟ajax响应

Javascript 如何模拟ajax响应,javascript,jquery,ajax,http,mocking,Javascript,Jquery,Ajax,Http,Mocking,如何模拟ajax响应 提供指向答案的链接,但链接已断开 提供以下答案,但它与$有关。ajax不是一个函数 $。ajax必须是一个函数,否则它不会返回承诺 函数ajax\u响应(响应){ var deferred=$.deferred().resolve(响应); 延迟返回。承诺(); } $.ajax=函数(){ 返回ajax_响应([1,2,3]); }; $.ajax('GET','some/url/i/fancy').done(函数(数据){ console.log(数据);//[1,2

如何模拟ajax响应

提供指向答案的链接,但链接已断开

提供以下答案,但它与
$有关。ajax不是一个函数


$。ajax
必须是一个函数,否则它不会返回承诺

函数ajax\u响应(响应){
var deferred=$.deferred().resolve(响应);
延迟返回。承诺();
}
$.ajax=函数(){
返回ajax_响应([1,2,3]);
};
$.ajax('GET','some/url/i/fancy').done(函数(数据){
console.log(数据);//[1,2,3]
});

完美。感谢您有可能让
ajax\u response
返回一个函数,这样您就不需要手动重新定义
$。ajax
每次您想用不同的响应模拟它时。顺便说一句,您应该让
ajax\u response
返回一个函数,它将充当
$。ajax
函数ajax\u response(response){return function(){var deferred…}}
 function ajax_response(response) {
   var deferred = $.Deferred().resolve(response);
   return deferred.promise();
 }
 $(function() {

   $.ajax = ajax_response([1, 2, 3]);
   $.ajax('GET', 'some/url/i/fancy').done(function(data) {
     console.log(data); // [1, 2, 3]
   });
 });