How to check if HTTP requests are open in browser?

后端 未结 4 732
一生所求
一生所求 2020-12-09 04:51

Is there an easy way to detect if an XMLHttpRequest is active in the browser window? Or how many are active? ie. Is there a way to detect if there are any AJAX

4条回答
  •  误落风尘
    2020-12-09 05:08

    I tried @juan-mendes's solution and got an error: ERROR Error Code: undefined Message: Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be changed for synchronous requests made from a document. in my Angular application. The cause is the async parameter which is supposed to be true by default, but when the argument is missing, this patch passes undefined which translates to false. The code with this small change works for me:

    (function() {
            var oldOpen = XMLHttpRequest.prototype.open;
            window.openHTTPs = 0;
            XMLHttpRequest.prototype.open = function(method, url, async = true, user = null, pass = null) {
                window.openHTTPs++;
                this.addEventListener("readystatechange", function() {
                    if(this.readyState == 4) window.openHTTPs--;
                }, false);
                oldOpen.call(this, method, url, async, user, pass);
            }
        })()
    

提交回复
热议问题