1

我的场景是:</p>

function testb() { b() } // written by me
function b() { 
    sendRequest1(); //eg: http://test1
    sendRequest2(); //eg: http://test2

} // a third party library, it is black box for me

我的问题是在调用 testb() 时,有没有一种方法可以捕获/获取 request1 和 request2 的 url?我想做一些检查,例如:查询字符串是否正确。一些网络代理工具(例如:Charles)将有助于做到这一点。但我想用 JavaScript 来做。可能吗?

这只是测试 b() 的一个测试用例。因为b()有很多类似的情况。所以自动化案例可能对我有帮助。

4

1 回答 1

2

至少在某些浏览器上(我已经在 Chrome 中尝试过),您可以“猴子补丁”XMLHttpRequest对象,例如:

(function(xhr) {
    var open = XMLHttpRequest.prototype.open;

    xhr.prototype.open = function() {
       console.log(arguments);
       open.apply(this, arguments);
    };

})(XMLHttpRequest);

http://jsfiddle.net/alnitak/tbdNJ/

于 2012-04-26T15:46:56.617 回答