全局存储XHR响应

时间:2019-07-02 23:11:54

标签: javascript typescript electron global-variables nightmare

我正在使用nightmare评估来拦截XHR响应。我当前将响应存储在window对象中。缺点是导航或页面重新加载后,存储的响应将被截断。

我想将它们存储在全局数组变量中,但是,噩梦evaluate方法在某些不同的Javascript上下文上运行,即使我可以在访问渲染器进程进行调试时访问变量并推送响应,它说该变量为空。

我当前的代码

Nightmare.evaluate(() => {
    window.XMLHttpRequest.prototype.open = function (method: string, url: string, async: any, user: string, pass: string) {
        this.addEventListener("readystatechange", () => {
            if (this.readyState === 4) { // State complete...

                window.__responses.push({
                    responseText: this.responseText,
                    readyState: this.readyState,
                    url: url,
                    method: method
                });
            }
        }, false);
    };

    window.XMLHttpRequest.prototype.open.apply(this, arguments);
})

问题:

如何正确地将响应存储到全局变量中,以便在重新加载页面或导航时不会被截断?

0 个答案:

没有答案