Боюсь, не изначально. В реализации прототипов вы можете написать свой собственный прототип:
XMLHttpRequest.prototype.__oldOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.verb = "";
XMLHttpRequest.prototype.url = "";
XMLHttpRequest.prototype.open = function (verb, url, async)
{
this.verb = verb;
this.url = url;
this.__oldOpen.call(this, verb, url, async);
}
Не ожидайте, что он будет работать в IE7 и старше.
<ч />
Я полагаю, что вы могли бы сделать это, полностью воссоздав объект XMLHttpRequest
, но потребовалось бы много работы, чтобы сделать это правильно:
var oldXHR = XMLHttpRequest;
function XMLHttpRequest()
{
var realXHR = new oldXHR();
this.onreadystatechange = function () {}
this.open = function (verb, url, async)
{
this.verb = verb;
this.url = url;
realXHR.open(verb, url, async);
{
this.send = function () { realXHR.send(); }
// all other properties and methods...
}
Конечно, вы должны приложить усилия для правильной привязки onreadystatechange
и установки status
и т. Д.