在jquery ajax GET调用中执行ntlm身份验证

时间:2018-10-04 11:43:51

标签: jquery ajax

我在SO上找不到符合我要求的任何内容-只有一个或两个问题具有某些相似之处,但没有一个与我的相似。这是各种可能的“解决方案”的混搭,无法解决我的要求:Javascript/Ajax NTLM Authentication。另外-它已有5年历史,而且似乎更多是.net代码。

我的要求:我正在尝试通过jquery ajax调用来访问远程服务器上的csv文件。远程服务器是承载csv文件的共享点服务器。远程服务器使用ntlm身份验证进行设置。

到目前为止,我所做的是:通过执行GET调用,然后在(邮递员的)“身份验证”标签中输入用户名和密码,然后设置“标头的值为“ Authorization = true”和“ Accept = application / json”值(在Postman中)。我能够检索csv文件的所有行,包括标题行。

我需要在jquery ajax调用中复制通过邮递员成功完成的操作(在上面发布)(即:传递相关的ntlm身份验证信息),然后从csv文件中检索行。

我目前有以下代码,但不知道如何在jquery中执行ntlm身份验证:

 $.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);
                }
                }
            });

我有必要的“域”,“用户名”和“密码”信息,但是需要一些有关如何将该信息纳入上述代码的指导。 附言我尝试了某人在5岁的问题线程上发布的ntlm插件(我已在上面发布),但对我不起作用(我在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.
            }

0 个答案:

没有答案