gsanta
gsanta

Reputation: 774

How to intercept ajax calls to return mock data.

In my previous angularjs project I used interceptors to intercept the http calls, and to be able to serve mock data instead of the real data from the server. I found it very useful throughout the development process.

My question is, how could I do this without angularjs (In my current project I use another framework, which does not have interceptors)? Is there any other http library out there, that supports this? How could I achive this using jquery's or superagent's http capabilities?

Upvotes: 2

Views: 1568

Answers (2)

David
David

Reputation: 56

You should check out dfournier/plasticine. I developed this library in order to intercept a request and fake the response or intercept server response and modify it. I use it at work and the backend team is not ready but we already defined the API.

Upvotes: 0

Angry 84
Angry 84

Reputation: 2995

So i found the following script: https://github.com/creotiv/AJAX-calls-intercepter/blob/master/index.html

Here is a live fiddle: http://jsfiddle.net/0eyadb88/1/

I'm not going to go over everything in the script as simply it looks like it does handle the XMLHttpRequest as i commented on. To what extent this works, well that would be just some testing of course and should be able to be expanded.

i've added a non jquery ajax call (testing with chrome here) and it handles that as well.

The main section to pay attention to is

(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);

Personally i would use this approach unless a decent libary is around, but of course if such a libary exists. please do let us know ;)

Otherwise cleaning up the script or using that one in general should be fairly easy.

Upvotes: 2

Related Questions