Skip to content

Instantly share code, notes, and snippets.

@m1el
Created June 22, 2013 12:16
Show Gist options
  • Save m1el/5840683 to your computer and use it in GitHub Desktop.
Save m1el/5840683 to your computer and use it in GitHub Desktop.
var TrueXMLHttpRequest = XMLHttpRequest;
XMLHttpRequest = function(){
this.status = 0;
this.readyState = 0;
return this;
}
XMLHttpRequest.prototype.open = function(meth, uri, asyn){
if(!uri){
throw {};
}
this.method = meth;
this.uri = uri;
this.asyn = asyn;
};
XMLHttpRequest.prototype.send = function(postdata){
var self = this;
self.post = postdata;
function DO_request(){
// Actually, I should copy whole object without methods here cause of JSON
// chrome.extension.sendRequest(self, function(response) {
server.http(self, function(response) {
try{
// console.log(JSON.parse(response.text));
}catch(e){}
self.readyState = 4;
self.status = response.status || 200;
self.responseText = response.text || "";
self.responseheaders = response.headers || {};
if(self.onreadystatechange){
self.onreadystatechange(self);
}
});
}
if(self.asyn){
window.setTimeout(DO_request, 0);
}else{
DO_request();
}
return self;
};
XMLHttpRequest.prototype.abort = function(){return 1};
XMLHttpRequest.prototype.rheaders = {};
XMLHttpRequest.prototype.setRequestHeader = function(a, b){this.rheaders[a] = b; return;};
XMLHttpRequest.prototype.getAllResponseHeaders = function(){return this.responseheaders;};
XMLHttpRequest.prototype.getResponseHeader = function(a){return this.responseheaders[a]};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment