Выполнение аутентификации ntlm в jquery ajax вызове GET - PullRequest
0 голосов
/ 04 октября 2018

Я не смог найти в SO ничего, что соответствовало бы моему требованию - только один или два вопроса, которые имели некоторые сходства, но не имели ничего общего с моим.Существует множество различных возможных «решений», которые не соответствуют моему требованию: Аутентификация Javascript / Ajax NTLM .Плюс - ему 5 лет, и, похоже, он содержит больше кода .net.

Мое требование: я пытаюсь получить доступ к CSV-файлу на удаленном сервере, выполняя его с помощью jjery ajax-вызова.Удаленный сервер - это сервер sharepoint, на котором находится файл csv.Удаленный сервер настроен с аутентификацией ntlm.

Что я сделал до сих пор: я могу успешно получить доступ к указанному файлу из Почтальона, выполнив вызов GET и введя имя пользователя и пароль на вкладке «Аутентификация» (Почтальона) иустановка значений «Заголовки» как «Авторизация = истина» и «Принять = приложение / JSON» (в Почтальоне).Я могу получить все строки файла CSV, включая строку заголовка.

Мне нужно СДЕЛАТЬ, что я могу успешно сделать через Postman (опубликовано выше) в вызове jjery ajax (то есть:передать соответствующую информацию об аутентификации ntlm) и извлечь строки из файла csv.

В настоящее время у меня есть следующий код, но я не знаю, как выполнить аутентификацию ntlm в jquery:

 $.ajax({
                url: "https://xxxxx.yyyyyy.com/abc/def-efg/hijk/MyFile.csv",
                type: "GET",
                headers: {
                "ACCEPT": "application/json;odata=verbose"
                },
                success: function(data){
                var results = data.d.results;
                for(i=0; i < data.d.results.length; i++){
                    console.log(i + data.d.results[i].Title);
                }
                }
            });

У меня есть необходимая информация о домене, имени пользователя и пароле, но мне нужно несколько советов о том, как включить эту информацию в код выше.PS Я попробовал плагин ntlm, который кто-то разместил в ветке 5-летнего вопроса на SO (которую я разместил выше), но он не работал для меня (я не увидел никаких выводов или ошибок в консоли Chrome).Этот код выглядит следующим образом:

Ntlm.setCredentials('MyDomain', 'username', 'password');
var url = 'https://abc.def.com/sites/xyz- 
Home/myfiles/MyFile.csv';

            if (Ntlm.authenticate(url)) {
                var request = new XMLHttpRequest();
                request.open('GET', url, false);
                request.send(null);
                console.log(request.responseText);
                // => My super secret message stored on server.
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...