如何使XMLRequest等待一定时间直到发出GET请求?

时间:2019-07-01 19:20:58

标签: javascript http xmlhttprequest

我正在尝试使用XMLHTTPRequest获取页面的HTML内容。该页面将在几秒钟内完成加载,但是需要填充的数据需要更长的时间。

我能够获取页面的HTML内容,但是由于请求是立即发出的,因此我所需的数据不在响应中。

有什么方法可以让请求等待几秒钟,然后再尝试获取内容?

(如果问题的术语不完善,请事先道歉,只是开始使用这些类型的请求)。

// My current request:

async function getHTMLContent() {
    return new Promise( (resolve, reject) => {
        var XMLRequest = new XMLHttpRequest();
        XMLRequest.open('GET', "myURL", true);
        XMLRequest.send();
        XMLRequest.onload = () => {
            if (XMLRequest.readyState == 4 && XMLRequest.status == 200) {
                return resolve(XMLRequest.responseText);
            } else {
                return reject('There was an error retrieving the data');
            }
        }
    });

}

当前输出为:

<div class="abc"></div>

之间没有任何内容。

我希望内容为:

<div class="abc">"The data"</div>.

1 个答案:

答案 0 :(得分:0)

如果数据是在加载后添加到页面的,那么那是因为其中的JavaScript正在操纵DOM。

您不能简单地等待该数据出现。您需要运行JavaScript(或等效的JavaScript)。

您如何依赖要处理的特定JS,因此您需要阅读并进行反向工程。