【问题标题】:Why axios GET call not working for basic authentication?为什么 axios GET 调用不适用于基本身份验证?
【发布时间】:2019-06-24 14:37:30
【问题描述】:

我在http://localhost:8085/api/v1/users 有一些用户数据,这些数据由基本身份验证保护。如果我从浏览器(URL 框)访问此 URL,它会发送一个 GET 请求并出现登录(身份验证)提示。填写正确的详细信息后,浏览器会向我显示数据。甚至像 POSTMAN 这样的客户端应用也运行良好。

但 axios 调用不会发生这种情况。以下是GET 电话:

axios
    .get(
      "http://localhost:8085/api/v1/users",
      {},
      {
        auth: {
          username: "sample@gmail.com",
          password: "pass@"
        }
      }
    )
    .then(resp => console.log(resp))
    .catch(err => console.log(err));

我什至在下面尝试过:

axios({
      method: "get",
      baseURL: endpoint,
      auth: {
            username: "sample@gmail.com",
            password: "pass@"
           }
      })
      .then(resp => console.log(resp))
      .catch(err => console.log(err));

我认为 axios 没有在请求中添加基本身份验证标头。 我在这里做错了什么?请提出建议。

【问题讨论】:

  • 浏览器是否在 devtools 控制台中记录任何错误消息?如果是这样,您可能想使用stackoverflow.com/posts/54455420/edit 编辑/更新问题并粘贴确切的错误消息

标签: javascript axios fetch-api


【解决方案1】:

您是否尝试过使用 POST 而不是 GET?如果这不起作用,那么可以尝试将用户名和密码放入 headers 属性而不是 auth 属性。您收到什么错误?

希望这会有所帮助。

【讨论】:

  • 401 错误。实际上,我已经在服务器上进行了一些日志记录,以了解服务器是否正在查看数据库以获取提供的凭据。对于浏览器和 POSTMAN,它确实会查看 DB,但对于 axios,它不会。
猜你喜欢
  • 2019-04-12
  • 2021-11-15
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 2018-04-19
相关资源
最近更新 更多