如何拦截ajax调用以返回mock数据
How to intercept ajax calls to return mock data.
在我之前的angularjs项目中,我使用拦截器来拦截http调用,并能够提供模拟数据,而不是来自服务器的真实数据。我发现它在整个开发过程中非常有用。
我的问题是,如果没有angularjs,我怎么能做到这一点(在我目前的项目中,我使用了另一个没有拦截器的框架)?有没有其他支持这一点的http库?如何使用jquery或superagent的http功能实现这一点?
所以我找到了以下脚本:https://github.com/creotiv/AJAX-calls-intercepter/blob/master/index.html
这是一把活小提琴:http://jsfiddle.net/0eyadb88/1/
我不打算讨论脚本中的所有内容,因为它看起来确实像我所评论的那样处理了XMLHttpRequest。在多大程度上,这当然只是一些测试,应该可以扩展。
我添加了一个非jqueryajax调用(在这里使用chrome进行测试),它也可以处理这个调用。
需要注意的主要部分是
(function (open) {
XMLHttpRequest.prototype.open = function (method, url, async, user, pass) {
alert('Intercept');
open.call(this, method, url + ".ua", async, user, pass);
};
})(XMLHttpRequest.prototype.open);
就我个人而言,除非有一个像样的图书馆,否则我会使用这种方法,但当然,如果有这样的图书馆的话。请务必告知我们;)
否则,清理脚本或使用该脚本通常应该相当容易。
您应该查看dfournier/plastine。我开发这个库是为了拦截请求并伪造响应或拦截服务器响应并修改它。我在工作中使用它,后端团队还没有准备好,但我们已经定义了API。
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- JS验证ajax返回的html中的表单数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- AJAX:$_GET不返回任何值
- 从Javascript方法返回全局变量
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 如何拦截ajax调用以返回mock数据