В Js есть объект
arguments.
UPD
Функция вызывается несколько раз и при каждом вызове перезаписывается переменная.
В данном случае key - Authorization, а при повторном вызове функции key становится Aссept.
То есть функция у тебя вызывается дважды, переписывая пару key/value.
Рабочий вариант:
var setRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
var headers = [];
XMLHttpRequest.prototype.setRequestHeader = function(key, value) {
headers.push({key, value});
setRequestHeader.call(this, key, value, a, b);
}