Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Перехват запроса загрузки изображения браузера

Автор вопроса: BalaОтветов: 3

Я хотел бы знать, есть ли способ перехватить запросы на загрузку изображений браузера и добавить некоторые заголовки запросов, ожидаемые сервером.

Фактический сценарий таков. Веб-приложение отправляет XHR на сервер и выполняет подтверждение аутентификации. Все последующие запросы должны включать заголовок auth. Изображения повреждены, потому что браузер не отправляет заголовки для запросов изображения.

Заранее спасибо.

  • Наверняка для этого и нужен ваш авторизационный файл cookie? James McCormack 15.07.2011
  • Вероятно, вам следует использовать файл cookie вместо этих заголовков аутентификации. Martin 15.07.2011

javascriptbrowserhttp-headersimage-loading

Ответы

Ответ 1 · рейтинг 4 · asdf

Вы можете запросить изображение с помощью AJAX с соответствующими заголовками. Затем вы должны base64 закодировать двоичный файл изображения и вставить его в DOM, установив

<img src="data:image/png;base64,[base64 encoded image]" />

Ответ 2 · рейтинг 1 · Pointy

Нет, нет способа сделать это, и это тоже очень хорошая вещь.

(Ну, это невозможно сделать из вашего кода. Владелец браузера, конечно, может установить инструмент, который изменяет запросы, если он того пожелает.)

Тот факт, что браузеры выдают HTTP-запросы для сценариев и изображений по-своему, означает, что сайт, использующий XHR, может предотвратить некоторые виды CSRF-атак (подделка межсайтовых запросов), заставив сервер отклонять определенные запросы, если они не содержат специальный заголовок, который добавляет собственный код XHR сайта.

Вы также не можете точно контролировать, что браузер делает с заголовком с сообщениями формы.

Ответ 3 · рейтинг 1 · shawnjan

Существует способ перехвата запросов изображений в браузере: ознакомьтесь с Capturing API в Mobify.js: https://hacks.mozilla.org/2013/03/capturing-improving-performance-of-the-адаптивный-веб/

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы