在Javascript中捕获请求有效负载

时间:2014-11-18 18:52:59

标签: javascript http xmlhttprequest google-chrome-devtools qunit

我正在测试的网络应用正在进行http调用。我正在尝试设置Qunit测试以验证这些调用。我需要能够验证HTTP POST调用的请求有效负载中的数据。我已经可以捕获自己的呼叫,但我无法访问该呼叫的请求有效负载。

这是我到目前为止所拥有的:

XMLHttpRequest.prototype._originalOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
    if(url.match(/get/)) {
        QUnit.asyncTest("Validate URL", function( assert ) {
            assert.equal( url.match(my_regex)[0] , expected_url, "Matches");
            // assert.equal( /*Validate Request Payload*/);
            start();
        });
    }
    this._originalOpen(method, url, async, user, password);
}

有没有办法在Javascript中捕获调用的请求有效负载?

1 个答案:

答案 0 :(得分:1)

您需要像打开一样克隆send()方法,然后检查参数:

var clone = window.XMLHttpRequest.prototype.send;
window.XMLHttpRequest.prototype.send = function() {
  // console.log(arguments);
  // Continue the send
  clone.apply(this, arguments);
};