2012-04-26 75 views
1

我的情況是:如何在JavaScript中捕獲請求?

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和請求2的網址嗎?我想做一些檢查,例如:查詢字符串是正確的。某些網絡代理工具(如:Charles)會幫助完成此操作。但我想用JavaScript來做。可能嗎?

這只是測試b()的測試用例。因爲b()有很多類似的情況。所以自動化案例可能對我有所幫助。

+1

如果是「黑盒子」爲你,請考慮一下我們甚至沒有代碼可以看的東西? – adeneo 2012-04-26 15:42:59

+0

爲什麼oyu需要用JS做到這一點?爲什麼不試試看Firebug或像Charles一樣?你究竟想要做什麼? – prodigitalson 2012-04-26 15:43:49

+0

已更新問題描述 – Joseph 2012-04-26 15:48:35

回答

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/