Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save chenbojian/c84fb49265c7358a6febf6aaa838471e to your computer and use it in GitHub Desktop.

Select an option

Save chenbojian/c84fb49265c7358a6febf6aaa838471e to your computer and use it in GitHub Desktop.
Proxying a XMLHttpRequest to force the status received
XMLHttpRequest = new Proxy(XMLHttpRequest, {
construct:function(t,a){
const req = new t();
return new Proxy(req, {
get:function(o,p){
if(p=='status')return 9001
return typeof o[p] == 'function'?o[p].bind(o):o[p]
},
set: function(target, prop, value) {
Reflect.set(target, prop, value) // or target[prop] = value
return true;
},
})
}
})
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", transferComplete);
oReq.addEventListener("error", transferComplete);
oReq.open("GET", "https://blossom-emery.glitch.me/yo.json");
oReq.responseType = "json";
oReq.send()
console.log(oReq)
function transferComplete(evt) {
console.log(evt);
console.log(oReq.status,oReq.response);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment