我在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.
}