如何在 axios nuxt 模块中使用基本身份验证

How to use basic auth with axios nuxt module

我目前正在努力使用 Nuxt 的 Axios 模块:https://axios.nuxtjs.org/。 我想从必须使用基本身份验证的特定端点获取一些数据。

通常,使用 Axios,我会做类似的事情:

await axios.get(
  'http://endpoint',
  {},
  {
    withCredentials: true,
    auth: {
      username: 'userame',
      password: 'pw'
    }
  }
)

不幸的是,使用 Nuxt 的 Axios 模块,似乎并不那么容易... 我试过类似的东西:

const data = await this.$axios.$get(
  'http://endpoint',
  {},
  {
    credentials: true,
    auth: {
      username: 'user',
      password: 'pw'
    }
  }
)

但这给我留下了 401 Unauthorized...

我在这里错过了什么?

axios.get()(和 $axios.$get())的第二个参数是 Axios 配置,但您已将其作为第三个参数(即被有效忽略)。 API 可能会省略 axios.get() 中的数据参数,因为数据不适用于此上下文。

解决方案是用您的配置替换第二个参数:

const data = await this.$axios.$get(
  'http://endpoint',
  // {},          // <-- Remove this! 2nd argument is for config
  {
    credentials: true,
    auth: {
      username: 'user',
      password: 'pw'
    }
  }
)