Я начал работать в небольшом доказательстве концепции, которая использует PhantomJS для создания скриншотов, и я получу все необходимые конфигурации в виде системных аргументов, таких как URL, тайм-аут, isScreenshotReqd, isHarFileReqd, isHeadersReqd, имя пользователя, пароль и некоторые связанные с приложениями конфиги. Все работает нормально, кроме customHeaders
.Как передать customHeaders как системные аргументы в скрипте PhantomJS?
кода я использовал
if (system.args.length === 1) {
console.log('Usage: phantom.js <some URL>');
phantom.exit(1);
} else {
assembleId = system.args[2];
page.address = system.args[3];
page.settings.resourceTimeout = system.args[4];
isScreenshotReqd = system.args[5];
isHeadersReqd = system.args[6];
isHarFileReqd = system.args[7];
page.settings.userName = system.args[8];
page.settings.password = system.args[9];
var key = "headerKey";//(or system.args[10])
var value = "headerValue";//(or system.args[11])
page.customHeaders = {key : value};
//some operation
}
это устанавливает customHeader в
"headers": [{"name": "key","value": "headerValue"}]
Вы можете увидеть значение установлено правильно, но ключ не берется из инициализированных переменных или system.args[x]
вместо этого он предпринимает все переменная, которую я использую.
хотя это работает, если я жёстко в customHeaders как
page.customHeaders = {"headerKey": "headerValue"};
дает ожидаемый выход, но проблема в том, я буду с динамическими заголовками для различной URL. Это означает, что он настроен на конфигурацию, и каждый клиент будет предоставлять разные заголовки для каждого URL-адреса.
его не дублированный, В контексте phantomJs решения по ссылке не работает, пожалуйста, проверьте для себя и просветить меня, если я не права. – Zyber
«page.customHeaders = {}; page.customHeaders [key] = value; 'work? –
page.customHeaders = {}; работает , но page.customHeaders [ключ] = значение; не работает. – Zyber