Установить заголовки http на запросы, созданные браузером?

137
15

У меня есть сервер с базовой аутентификацией HTTP, и у меня есть клиент script, который знает имя пользователя и пароль для вышеуказанного HTTP-сервера. Я использую XHR запрос и setRequestHeader для установки заголовков авторизации, этот бит не позволяет браузеру запрашивать диалоговое окно входа в систему по умолчанию.


request.setRequestHeader('Authorization', authInfo);

Это нормально для запросов AJAX, но в случае, если я хочу загрузить файл с упомянутого сервера, и я вынужден пойти без AJAX и использовать что-то вроде window.location.href из JavaScript, где браузер сам создает запрос. Поскольку этот запрос не будет включать заголовок авторизации (браузер будет добавлять заголовок авторизации для каждого запроса автоматически только после того, как он предложит диалоговое окно входа в систему и сохранит базовую информацию для входа в систему для фактического сервера) браузер предложит диалоговое окно входа в систему, которое я хочу избежать.


Итак, есть ли способ установить заголовки для неадж-запросов, созданных браузером?

спросил(а) 2021-01-19T12:17:10+03:00 9 месяцев назад
1
Решение
81

Вы пытались установить имя пользователя и пароль в URL?


location.href = 'http://user:password@example.com/path/to/download';

Я думаю, что это должно работать в большинстве браузеров, кроме, к сожалению, Internet Explorer 7+.


В качестве альтернативы, если у вас есть доступ к серверу, вы можете поместить на серверную страницу script, которая использует файлы cookie для аутентификации. Cookies могут быть установлены с помощью JavaScript.

ответил(а) 2021-01-19T12:17:10+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема