这两天来我一直在努力让它发挥作用.我是Nuxt的新用户(尽管我已经使用Vue好几年了),所以我只是想了解一下这一切是如何工作的.

在我的Nuxt项目中,我安装了Axios模块:

nuxt.config.js

export default {
  plugins: [
    ...
    '~/plugins/axios',
  ],
  axios: {
    baseURL: 'https://my-url.com/wp-json/wp-v2',
    https: true,
  },
}

plugins/axios.js

export default ({ $axios, env }) => {
  $axios.onRequest(config => {
    $axios.setToken(env.WP_API_KEY, 'Bearer');
  });
}

在我的页面中,我试图使用asyncData函数从我的WordPress API中提取数据,例如:

export default {
  async asyncData(context) {
    const data = await context.$axios.$get('/media');
    console.log(data);
    return { data };
  }
}

然而,我一直收到一个401未授权错误,基本上是说我的Authorization: Bearer <token>未通过.然而,使用Postman,我可以验证这个端点是否确实有效,并返回我需要的所有JSON,所以问题一定在于我设置axios全局头的方式.

很难找到任何关于如何使用Nuxt/Axios模块设置全局头的真实示例.我在docs中看到了如何使用setToken,但是它并没有确切地显示在哪里放置它.

我设置了什么错误,如何修复它?

推荐答案

非常典型的是,我在发帖15分钟后就开始工作了.

这样设置标题似乎很有效.我不知道为什么setToken法不起作用.

export default ({ $axios, env }) => {
  $axios.onRequest(config => {
    config.headers.common['Authorization'] = `Bearer ${env.WP_API_KEY}`;
  });
}

Vue.js相关问答推荐

Nuxt 3中间件在部署到Netliy时基于IP国家代码的重定向不起作用

使用V-TOOLTIP(实例化)使工具提示在V-文本字段中显示清晰的图标

Vue Js Composition Api 未定义(读取名称)

使用 Vue.js 将文件输入绑定到按钮

在重复内容区域中添加

为什么在 Vue.js 中使用 `var` 关键字?

使用 vee-validate 在 vue js 中进行验证有错误

为什么Vue.js 使用单字标签

如何使用 vue-resource 添加额外的标头来发布请求?

Vue test-utils 如何测试 router.push()

Keycloak:用户基于角色的客户端登录访问限制

vue-router的router-link实际刷新?

Angular 5 中的 功能

Vue更改宽度和内容

NUXT如何将数据从页面传递到布局

触发子函数

axios 拦截器响应未定义

使用 Vee-validate 禁用按钮,直到正确填写表单

Vuetify v-data-table 固定标题不起作用

使用 svelte js 的原因