我正在使用phantomjs来打印网页并创建一个pdf。由于UI在查找数据之前需要用户的身份验证,因此我使用持久性cookie来对用户进行身份验证。但不知何故,我每次都在创建的PDF中登录屏幕。我观察到用户成功进行了身份验证,并且结果的网页显示了正确的结果(显示正确数据数组的调试日志),但在打印网页或创建PDF时,它以某种方式获取登录屏幕。有时我发现在获取报告数据时我的PHP代码中有两个不同的cookie,并且在javascript'document.cookies'中。
请告诉我如何解决此问题。
var page = require('webpage').create(),
system = require('system'), t, address;
page.settings.userName = 'myusername';
page.settings.password = 'mypassword';
if (system.args.length === 1) {
console.log('Usage: scrape.js ');
phantom.exit();
} else {
t = Date.now();
address = system.args[1];
page.open(address, function (status) {
if (status !== 'success') {
console.log('FAIL to load the address');
} else {
t = Date.now() - t;
var title = page.evaluate(function() { return document.title;})
console.log('Page title is ' + title);
console.log('Loading time ' + t + ' msec');
}
phantom.exit();
});
}
另一段发送cookie文件的代码
bin/phantomjs --cookies-file=/tmp/cookies.txt --disk-cache=yes --ignore-ssl-errors=yes /phantomjs/pdf.js 'username' 'params' '/tmp/phantomjs_file' /tmp/phantom_pdf.pdf
和
phantomjs --cookies-file=cookies.txt examples/rasterize.js localhost:7000/reports /tmp/report.pdf