如何让 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