如何模拟 ajax 响应?
https://stackoverflow.com/a/13915248/1032531提供指向答案的链接,但该链接已损坏。
https://stackoverflow.com/a/29680013/1032531提供了以下答案,但它出错了 $.ajax is not a function
。 https://jsfiddle.net/bdw0gfan/
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]
});
});
最佳答案
$.ajax
必须是一个函数,否则它不会返回 promise 。
function ajax_response(response) {
var deferred = $.Deferred().resolve(response);
return deferred.promise();
}
$.ajax = function() {
return ajax_response([1, 2, 3]);
};
$.ajax('GET', 'some/url/i/fancy').done(function(data) {
console.log(data); // [1, 2, 3]
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
关于javascript - 如何模拟 ajax 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52795112/