title: Intercept XMLHttpRequest and modify responseText
body: <p>I'm trying to build a script that will act as a proxy/wrapper for the native <code>XMLHttpRequest</code> object enabling me to intercept it, modify the responseText and return back to the original onreadystatechange event. </p>
  
  <p>The context being, if the data the app is trying to receive is already available in local storage, to abort the <code>XMLHttpRequest</code> and pass the locally stored data back into the apps success/failure callback methods. Assume I have no control over the apps existing AJAX callback methods.</p>
  
  <p>I had originally tried the following idea..</p>
  
  <pre><code>var send = XMLHttpRequest.prototype.send;
  XMLHttpRequest.prototype.send = function(data){
     //Do some stuff in here to modify the responseText
     send.call(this, data);
  };
  </code></pre>
  
  <p>But as I have now established, the responseText is read only.</p>
  
  <p>I then tried taking a step back, writing my own full native proxy to <code>XMLHttpRequest</code>, ultimately ending up writing my own version of the native methods. Similar to what is discussed here...</p>
  
  <p><a href="http://www.ilinsky.com/articles/XMLHttpRequest/#implementation-wrapping">http://www.ilinsky.com/articles/XMLHttpRequest/#implementation-wrapping</a></p>
  
  <p>But it rapidly got confusing, and still have the difficulty of returning the modified data back into the original <code>onReadyStateChange</code> method.</p>
  
  <p>Any suggestions? Is this even possible?</p>