Как добавить заголовок авторизации в элемент формы DOM? - PullRequest
1 голос
/ 26 февраля 2011

Я пытаюсь загрузить файл на сервер и настроил свой элемент DOM следующим образом:

        _uploadForm = document.createElement("form");

        _uploadForm.method = "POST";
        _uploadForm.action = "#";

        if(_isBrowser.IE)
            _uploadForm.encoding = "multipart/form-data";
        else
            _uploadForm.enctype = "multipart/form-data";

Мой сервер требует базового заголовка авторизации http.Как я могу передать это через этот элемент DOM?

Ответы [ 3 ]

1 голос
/ 19 января 2016

Ваш Javascript-клиент должен будет добавить заголовки при отправке формы.Я не уверен, какой клиент javacript lib вы используете, но такие вещи, как angular, позволяют вам устанавливать заголовки по умолчанию или даже иметь перехватчики, которые могут добавлять заголовки перед отправкой.

        var req = {
 method: 'POST',
 url: 'http://example.com',
 headers: {
   'Content-Type': undefined,
   'Authorization':  'your-scheme your-token-perhaps'
 },
 data: { test: 'test' }
}
0 голосов
/ 26 февраля 2011

Самый простой способ - предоставить форму загрузки и обработчик загрузки из одной и той же папки и использовать .htaccess для принудительной базовой аутентификации для обоих.Затем браузер автоматически запрашивает учетные данные при загрузке формы загрузки, и учетные данные автоматически отправляются вместе с загрузкой (я полагаю).

Однако лучше всего вообще не использовать HTTP Basic-аутентификацию.Он отправляет пароли в виде открытого текста при каждом запросе , если вы не используете SSL, и, как правило, это затрудняет использование.

Если вы настаиваете на использовании Basic, я считаю, что этобыть сделано с ActionScript (скомпилированный в SWF).Я также знаю способ установки заголовка авторизации для вызова AJAX, но вы не можете загрузить файл с вызовом AJAX, и браузер не запоминает заголовки авторизации, отправленные через вызов AJAX.

0 голосов
/ 26 февраля 2011

Элементы DOM не имеют ничего общего с авторизацией, они просто представляют собой внутреннее представление в браузере различных HTML-тегов.Сервер требует авторизации - если страница находится в защищенной области, то сервер будет запрашивать учетные данные, и это не имеет никакого отношения к самой форме.

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