heretic_man
@heretic_man

Как слушать когда и что передает заголовок XHR страницы?

Есть сайт (на Angular) где забиваю в поле цифры и с низу выдаются данные на эти цифры (при авторизации на странице). Хочу отловить имя и значение заголовка XHR при событии "input", а именно "Authorization:" "(ключ)".

5c0e08c215ec0347090332.png

а затем чтобы я самостоятельно как авторизированный мог отправлять запросы XHR:

var xhr = new XMLHttpRequest();

xhr.open('GET', 'https://zakup.sk.kz/eprocpko/api/nomenclatures?search=331311.100.00000&page=-1&size=9&sort=id,asc', false);
xhr.open('GET', 'https://zakup.sk.kz/eprocpko/api/nomenclatures?search=331311.100.00000&page=0&size=9&sort=id,asc', false);
xhr.setRequestHeader('Authorization', '(полученный ключ)');

xhr.send();
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
xhr.onreadystatechange = function() {
   if(this.readyState == this.HEADERS_RECEIVED) {
      var headers = xhr.getAllResponseHeaders(); // Тут заголовки
   }
}
xhr.send();

Вот полный пример, как получить заголовки в виде строки и преобразовать их в массив https://developer.mozilla.org/en-US/docs/Web/API/X...

UPD: вот так можно перехватить заголовки с "чужого" xhr
var send = XMLHttpRequest.prototype.send;
  XMLHttpRequest.prototype.send = function() {
    this.addEventListener('readystatechange', function() {
      // тут добавляем сравнение текущего урла  this.responseURL, чтобы обрабатывались только запросы, которые начинаются на такую строку
      if (this.readyState === 4 && this.responseURL.startsWith('https://zakup.sk.kz/eprocpko/api/nomenclatures?search')) {
        console.warn(this.getAllResponseHeaders());
      }
    }, false);
    send.apply(this, arguments);
  };
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы