Почему при установке настраиваемого заголовка запрос тега сценария вызывает ошибку перекрестного происхождения в кукловоде? - PullRequest
0 голосов
/ 05 августа 2020

В кукольнике задайте собственный заголовок:

await page.setExtraHTTPHeaders({
    'X-ENV': 'test'
})

Откройте страницу в Puppeteer, аккуратный html код ниже:

<body>
    <script src="xxxxx/static/js/main.87874446.chunk.js" crossorigin="anonymous">
</body>

, и кукольник выдаст ошибку:

Access to script at 'xxxxx/static/js/main.87874446.chunk.js' from origin 'xxxxx' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

зачем ресурсу тега скрипта нужно устанавливать cors?

1 Ответ

0 голосов
/ 05 августа 2020

Я думаю, вы программно добавляете тег скрипта где-нибудь, где можете сделать что-то вроде

await page.setRequestInterception(true);
page.on('request', request => {
 const whiteList =['document','script','xhr','fetch'];
if(!whiteList.includes(req.resourceType)){
return req.abort();
}
req.continue()
});
...