GET请求适用于浏览器的REST客户端,但不适用于JS

时间:2019-01-18 13:11:42

标签: javascript node.js rest npm ntlm

我试图在访问ASP页面后获得HTML响应。它具有NTLM身份验证,我尝试使用npm-ntlm客户端进行解析。响应是从REST客户端(如启用了NTLM的邮递员)(身份验证标头)返回的。但是,当尝试从JS中的npm-ntlm请求相同的URL时,我收到错误:

SELF_SIGNED_CERT_IN_CHAIN

示例代码:

var options = {
  method: 'GET',
  username: "user",
  password: "password@#",
  uri: 'https://URL.com',
  rejectUnauthorized: false,
  agent: false
};
ntlm_req.request(options).then((res)=>{
  console.log("success");
}, (err)=>{
  console.log("err");
});

注意:我已经尝试了其他答案中列出的几乎所有方法来获取响应,但无法获得响应。

2 个答案:

答案 0 :(得分:1)

您应该尝试告诉request调用的ntlm实例来忽略ssl问题。

尝试一下:

var options = {
  method: 'GET',
  username: "user",
  password: "password@#",
  uri: 'https://URL.com',
  request: {
    rejectUnauthorized: false
    // or this:
    // strictSSL : false
  },
  agent: false
};
ntlm_req.request(options).then((res)=>{
  console.log("success");
}, (err)=>{
  console.log("err");
});

在我看来,您几乎是对的:)

您只忘记正确传递请求的实例选项;)

答案 1 :(得分:1)

它通过以下方式提供参数,从而与httpntlm一起使用:

  httpntlm.get({
    url: url, // complete URL to be fetched
    username: 'user',
    password: 'pswd',
    workstation: 'MachineSerialNo', // host name
    domain: '' 
}