javascript - 如何模拟 ajax 响应
问题描述
如何模拟 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
必须是一个函数,否则它不会返回承诺。
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>
推荐阅读
- go - 遍历切片并通过“append()”修改它时出现“切片超出范围”错误
- html - 使用 Bootstrap4 弹性填充具有多个 h-100 子级的父级
- javascript - 每个 then() 都应该返回一个值或抛出 Firebase 云函数
- php - Laravel Blade OneToOne 未定义属性
- css - React 如何影响 CSS?
- postgresql - PostgreSQL:比较两组结果不起作用
- c# - 在 Visual Studio 2015 中添加新内容
- haskell - 在haskell中接受/拒绝下推自动机
- database - 在 Postgresql 中插入、更新索引上的查询
- c# - 即使在 PictureBox 上绘制之后,pictureBox1.Image 仍为空