【问题标题】:GET Request works with Browser's REST Client but not with JSGET 请求适用于浏览器的 REST 客户端,但不适用于 JS
【发布时间】:2019-01-18 13:11:42
【问题描述】:

我试图在点击 ASP 页面后获得 HTML 响应。它具有我尝试使用 npm-ntlm 客户端解决的 NTLM 身份验证。响应是从启用 NTLM(Auth 标头)的邮递员等 REST 客户端返回的。但是,在尝试从 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");
});

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

【问题讨论】:

    标签: javascript node.js rest npm ntlm


    【解决方案1】:

    您应该尝试告诉您的ntlm 调用的request 实例忽略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");
    });
    

    在我看来你几乎是对的 :)

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

    【讨论】:

    • 我试过了,但还是报错:{},不知道为什么它不能获取信息
    • 您能发布当前代码和完整输出吗?
    • 代码和你写的一样,错误是401 Unauthorised,我认为需要服务器端更改。
    • 好吧,我想你原来的问题已经解决了,现在你又得到了一个!哈哈哈。
    • 也许您应该创建一个新问题,其中包含有关客户端和服务器端的更多信息。我会看一看,试图帮助肯定! :) 祝你好运!
    【解决方案2】:

    它与httpntlm 一起工作,通过以下方式提供参数:

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

    【讨论】:

      猜你喜欢
      • 2017-06-25
      • 2011-09-28
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      相关资源
      最近更新 更多