0

如何让 Puppeteer 的加载页面发出请求并返回结果?

我试过这个不起作用,我不知道为什么:

var result = await page.evaluate(() => {
    return new Promise(resolve => {
        var xhr = new XMLHttpRequest();
        var xhrto = setTimeout( function(){
            xhr.abort();
            resolve('ErrTimeout');
        }, 8000);
        xhr.onload = function(){
            clearTimeout(xhrto);
            if( xhr.status == 200 ){
                resolve(xhr.responseText);
            }else{
                resolve('ErrStatus:'+xhr.status);
            }
        };
        xhr.onerror = function(){
            resolve('Err');
        };
        xhr.open('GET', 'http://www.robotstxt.org/robots.txt', true);
        xhr.send();
    });
});

我总是得到'Err',这意味着调用了onerror。

Puppeteer/Chrome 中是否有任何东西可以阻止页面之外的东西发出请求?

注意:出于多种原因,我必须从页面内提出请求。

编辑:它肯定与跨域和 SSL 问题有关,因为当我使用 HTTPS 时--disable-web-security它可以工作。但是对于 HTTP,它不会,即使有所有这些:

--disable-web-security --allow-running-insecure-content --unsafely-treat-insecure-origin-as-secure=http://example.com --user-data-dir=/root/chromeusertest 
4

0 回答 0