2012-03-29 105 views
2

是否有可能创建一个Javascript并将其包含在网页中,该JS的功能是“捕获”所有GET请求或任何其他Ajax调用页?要么登录它,要么只是将它显示在警报框中。用Javascript拦截或捕获Ajax调用

将执行GET或Ajax调用的“其他Javacript”是任意的。我的意思是,我无法控制它是什么。

一旦被捕获,我需要检查哪个Javascript执行哪些GET或Ajax调用。

这可能吗?

+0

你需要调试吗?所有主流浏览器都内置此功能。 – Yoshi 2012-03-29 07:28:46

+0

现在,因为它似乎不容易使用简单的Javascript也许我可以使用浏览器插件,但Firebug不显示哪个Javascript启动GET方法,例如... – xybrek 2012-03-29 07:32:28

+0

...但我的要求不是真正用于调试,而是用于实际应用功能。 – xybrek 2012-03-29 08:44:58

回答

11

试试这个片段。它扩展了send函数,以便在真正发送之前或之后执行某些操作。

XMLHttpRequest.prototype.reallySend = XMLHttpRequest.prototype.send; 
XMLHttpRequest.prototype.send = function(body) { 
    // Do something... 
    this.reallySend(body); 
}; 
var req = new XMLHttpRequest(); 
req.open("GET", "any.html", true); 
req.send(null); 
+0

很酷的工作。 – xybrek 2012-03-29 08:49:59

+0

这工作,我能够赶上Ajax调用,但是我没有抓到HTML的请求,我期待可能是因为它不是Ajax调用,你知道如何截取JavaScript引起的GET事件吗? – xybrek 2012-03-29 08:53:11

+0

@xybrek你可以使用这种方法作为模板。你需要做的就是熟练使用javascript必须提出的每种方法(例如Image对象,'