Size: a a a

2021 April 21

VZ

Victor Zagorodny in Frontend UA
всем привет. возникла задача загрузить изображение (с помощью обычного <img />) c сайта, закрытого Cloudflare DDoS protection. сама картинка не грузится, т.к. Cloudflare первым ответом возвращает 503 и свои куки и заголовки. только если зайти на эту же ссылку в отдельной вкладке, куки сохраняются, а затем картинка грузится уже и с помощью обычного <img />.

пробовал делать что-то типа img.onerror = () => setTimeout(once(() => { img.src = img.src }), 1000) чтобы спровоцировать повторную загрузку картинки, но результата не дало (предсказуемо, т.к. куки из запроса <img /> не сохранились в браузере).

загрузить картинку с помощью fetch не могу - CORS запрещен.

можно ли вообще как-то выйти из этой ситуации? ощущение, что без полноценного "браузера с сессией" не получится, но вдруг.
источник

EO

Eugene Obrezkov in Frontend UA
бабель просто стрипает типы
tsc делает тайпчек
источник

SS

Serhey Shmyg in Frontend UA
Ну типу при помилці в тайпах вебпак не здохне від бабеля, а від лоадера - так. Таке?
источник

OC

Ostap Chervak in Frontend UA
У всіх великий проектах, tsloader юзається з transpileOnly а тайпчек окремо через forktschecker
источник

EO

Eugene Obrezkov in Frontend UA
я о babel-preset-typescript, который тянет plugin-transform-typescript, который просто стрипает типы
источник

OC

Ostap Chervak in Frontend UA
Просто tsloader дасть повну підтримку всіх фіч TSa
источник

SS

Serhey Shmyg in Frontend UA
можна подробиці?
источник

AV

Anton Verinov in Frontend UA
Это звучит как «простой запрос», так что CORS не должен же триггериться. Какие-то дополнительные хэдеры шлёшь?

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests
источник

OC

Ostap Chervak in Frontend UA
const Enum / namespaces тощо
источник

OC

Ostap Chervak in Frontend UA
источник

SS

Serhey Shmyg in Frontend UA
Я певно не дуже розумію, нам потрібно просто код з ТС конвертунти в джс, як в бабелі можуть тоді не підтримуватись енами і тп?
источник

OC

Ostap Chervak in Frontend UA
^
источник

EO

Eugene Obrezkov in Frontend UA
потому что enum отсутствует в JS, а это штука, которая может попасть в рантайм, поэтому её надо как-то так сделать, чтобы enum стал чем-то, что может понимать JS
источник

EO

Eugene Obrezkov in Frontend UA
источник

EO

Eugene Obrezkov in Frontend UA
а сам процесс стрипа типов происходит туточки https://github.com/babel/babel/blob/main/packages/babel-plugin-transform-typescript/src/index.js
источник

SS

Serhey Shmyg in Frontend UA
ясно дяк
источник

EO

Eugene Obrezkov in Frontend UA
источник

EO

Eugene Obrezkov in Frontend UA
всё что тс просто удаляется
источник

EO

Eugene Obrezkov in Frontend UA
поэтому если хочется не просто на тс писать, а ещё чтобы оно и проверяло что-то, то выше писали вот
источник

VZ

Victor Zagorodny in Frontend UA
корс не триггерится в этом случае. дело в том, если зайти в браузере по ссылке из img.src, Cloudflare вернет 503 с некоторыми куки и хедерами + скрипт, который сделает запрос на challenge URL, получит challenge, плюс еще какое-то количество манипуляций, а потом повторит запрос на Cloudflare на этот же image URL, но с определенным query параметром (токеном), и получит 200 и картинку.
источник