diff --git a/lib/plugins/system/htmlparser/htmlparser.js b/lib/plugins/system/htmlparser/htmlparser.js index dfd79fa9e..fccbf29d2 100644 --- a/lib/plugins/system/htmlparser/htmlparser.js +++ b/lib/plugins/system/htmlparser/htmlparser.js @@ -20,7 +20,8 @@ export default { var options2 = {...options, ...{ followRedirect: !!options.followHTTPRedirect, - reuseCookies: !!options.followHTTPRedirect + reuseCookies: !!options.followHTTPRedirect, + allowPrerender: true }}; options.registerFetch({ diff --git a/lib/utils.js b/lib/utils.js index c4c839f16..5dbe9a4ab 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -95,9 +95,14 @@ export function prepareRequestOptions(request_options, options) { var proxy = (options && options.proxy) || getCustomProxyForUri(uri, options); if (proxy) { - if (proxy.prerender && CONFIG.PRERENDER_URL) { + if (proxy.prerender && CONFIG.PRERENDER_URL && options?.allowPrerender) { request_options.uri = CONFIG.PRERENDER_URL + encodeURIComponent(uri); + // Use string `proxy.prerender` as additional prerender param. + if (typeof proxy.prerender === 'string') { + request_options.uri += (request_options.uri.indexOf('?') > -1 ? '&' : '?' ) + `prerender=${proxy.prerender}`; + } + } else if (proxy.proxy && CONFIG.PROXY_URL) { request_options.uri = /{url}/.test(CONFIG.PROXY_URL) ? CONFIG.PROXY_URL.replace(/{url}/, encodeURIComponent(uri)) @@ -1230,7 +1235,7 @@ var getUriStatusPrivate = function(uri, options, cb) { }, timeout: options.timeout || CONFIG.RESPONSE_TIMEOUT, follow: CONFIG.MAX_REDIRECTS - }) + }); try { fetchStream(request_options)