【问题标题】:How to intercept ajax calls to return mock data.如何拦截 ajax 调用以返回模拟数据。
【发布时间】:2015-05-28 21:23:18
【问题描述】:

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

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

【问题讨论】:

标签: javascript ajax


【解决方案1】:

于是我找到了以下脚本:https://github.com/creotiv/AJAX-calls-intercepter/blob/master/index.html

这是一个现场小提琴:http://jsfiddle.net/0eyadb88/1/

我不会详细介绍脚本中的所有内容,因为它看起来确实像我评论的那样处理了 XMLHttpRequest。这在多大程度上有效,那当然只是一些测试,应该可以扩展。

我添加了一个非 jquery ajax 调用(在此处使用 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);

我个人会使用这种方法,除非有一个像样的库,但当然如果存在这样的库。请务必让我们知道;)

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

【讨论】:

  • 谢谢!我稍后会将它放入我的应用程序中,然后我接受答案:)
  • 欢迎您,发现这个脚本已经给出了一些想法并用于我在旅途中的项目..所以也感谢您的问题;)
【解决方案2】:

您应该查看dfournier/plasticine。我开发这个库是为了拦截请求并伪造响应或拦截服务器响应并修改它。我在工作中使用它,后端团队尚未准备好,但我们已经定义了 API。

【讨论】:

    猜你喜欢
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多