You are not modifying the open
method inherited by XMLHttpRequest objects
but just adding a method to the XMLHttpRequest constructor
which is actually never used.
I tried this code in facebook and I was able to catch the requests:
(function() {
var proxied = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function() {
console.log( arguments );
return proxied.apply(this, [].slice.call(arguments));
};
})();
/*
["POST", "/ajax/chat/buddy_list.php?__a=1", true]
["POST", "/ajax/apps/usage_update.php?__a=1", true]
["POST", "/ajax/chat/buddy_list.php?__a=1", true]
["POST", "/ajax/canvas_ticker.php?__a=1", true]
["POST", "/ajax/canvas_ticker.php?__a=1", true]
["POST", "/ajax/chat/buddy_list.php?__a=1", true]
*/
So yeah the open method needs to be added to XMLHttpRequest prototype
(window.XMLHttpRequest.prototype) not XMLHttpRequest constructor
(window.XMLHttpRequest)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…