Хранить ответ XHR глобально - PullRequest
0 голосов
/ 03 июля 2019

Я использую 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);
})

Вопрос:

Как правильно сохранить ответы в глобальной переменной, чтобы они не были обрезаны при перезагрузке страницы или навигации?

...