Можно ли перехватить не-AJAX-запрос в браузере?

Можно ли перехватывать HTTP-запросы в браузере с помощью JavaScript, которые не выполняются через XMLHttpRequest объект (ajax)?

Я издеваюсь над сервером API с http://www.ember-cli-mirage.com/, который использует pretender. Мне нужно добавить файл загрузки (изображения) в приложение. Насмешливая загрузка не проблема, так как она сделана ajax. Но я не могу перехватить GET-запрос, вызванный тегом изображения (не-AJAX-запрос), так как претендент только перехватывает запросы, выполненные через XMLHttpRequest и, следовательно, не может вернуть "загруженные" данные.

Могу ли я в любом случае перехватывать не-AJAX-запросы?

Если нет: что следует считать лучшей практикой? Это то, что я рассмотрел до сих пор:

  1. Получение изображений через ajax, чтобы я мог легко перехватить запрос. Например, я мог бы обращаться с ними как с угольными моделями данных, имеющими в качестве атрибута данные изображения в кодировке base64. Но я не уверен насчет компромисса. Боюсь, что это приведет к проблемам с производительностью и возможным утечкам памяти из-за размера изображения (> 1 МБ).
  2. Выполнение запросов на изображения и их обработка на экспресс-сервере, поставляемом с ember-cli. Но тогда загрузка поддельного файла будет работать только в том случае, если приложение обслуживается ember-cli. А невозможность развертывания сборок для разработки была бы большим компромиссом.

2 ответа

Я думаю, что единственный способ сделать это - использовать работника сервиса.

Сервисные работники fetch Событие может перехватить любой запрос. Однако поддержка браузера пока не очень хорошо.

Возможно, вы могли бы использовать Wireshark, чтобы понюхать данные

Другие вопросы по тегам