gpt4 book ai didi

Javascript:重写 XMLHttpRequest.open()

转载 作者:可可西里 更新时间:2023-11-01 01:35:54 25 4
gpt4 key购买 nike

我怎样才能重写 XMLHttpRequest.open() 方法,然后捕获并更改它的参数?

我已经尝试过代理方法,但它没有用,尽管在调用 XMLHttpRequest() 时删除了 open 覆盖:

(function() {
var proxied = window.XMLHttpRequest.open;
window.XMLHttpRequest.open = function() {
$('.log').html(arguments[0]);
return proxied.apply(this, arguments);
};
})();

最佳答案

您没有修改XMLHttpRequest 对象 继承的open 方法,而只是向XMLHttpRequest 构造函数 添加了一个实际上从未使用过的方法。

我在 facebook 上试过这段代码,我能够捕捉到请求:

(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]
*/

是的,需要将 open 方法添加到 XMLHttpRequest 原型(prototype) (window.XMLHttpRequest.prototype) 而不是 XMLHttpRequest constructor (window.XMLHttpRequest)

关于Javascript:重写 XMLHttpRequest.open(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7775767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com