Javascript 如何拦截ajax调用以返回模拟数据。

Javascript 如何拦截ajax调用以返回模拟数据。,javascript,ajax,Javascript,Ajax,在我以前的angularjs项目中,我使用拦截器拦截http调用,并能够提供模拟数据,而不是来自服务器的真实数据。我发现它在整个开发过程中非常有用 我的问题是,如果没有angularjs(在我当前的项目中,我使用另一个没有拦截器的框架),我怎么能做到这一点? 是否有其他http库支持此功能?我如何使用jquery或superagent的http功能实现这一点 因此我找到了以下脚本: 这是一把活小提琴: 我不打算讨论脚本中的所有内容,因为它看起来确实像我所评论的那样处理XMLHttpRequest

在我以前的angularjs项目中,我使用拦截器拦截http调用,并能够提供模拟数据,而不是来自服务器的真实数据。我发现它在整个开发过程中非常有用

我的问题是,如果没有angularjs(在我当前的项目中,我使用另一个没有拦截器的框架),我怎么能做到这一点?
是否有其他http库支持此功能?我如何使用jquery或superagent的http功能实现这一点

因此我找到了以下脚本:

这是一把活小提琴:

我不打算讨论脚本中的所有内容,因为它看起来确实像我所评论的那样处理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);
就我个人而言,除非有一个像样的图书馆,否则我会使用这种方法,当然,如果有这样的图书馆的话。请务必让我们知道;)


否则清理脚本或使用该脚本通常应该相当容易

你应该退房。我开发这个库是为了拦截请求并伪造响应,或者拦截服务器响应并修改它。我在工作中使用它,后端团队还没有准备好,但我们已经定义了API。

也请阅读,谢谢,我也找到了mockjax,但我有点担心它没有得到积极开发(那里有几个月前的问题)。它只适用于jqueryajax调用。有没有更通用的解决方案(例如,它也适用于superagent)?看一看请看一看伪装者谢谢!稍后我会把它放到我的应用程序中,然后我接受了答案:)欢迎你,找到这个脚本已经给了我一些想法,并用于我正在进行的一个项目。。谢谢你的提问;)