我已经试图让这个工作两天了。虽然我已经使用Vue几年了,但我是Nuxt的新用户,所以我只是试图理解这一切如何运作。
在我的Nuxt项目中,我已经安装了Axios模块:
nuxt.config.js
export default {
plugins: [
...
'~/plugins/axios',
],
axios: {
baseURL: 'https://my-url.com/wp-json/wp-v2',
https: true,
},
}
插件/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模块设置全局头部的真正示例很困难。我在文档中看到了如何使用setToken
,但它并没有明确显示该放置在哪里。
我设置错了什么,应该如何解决?
plugins/axios.js
文件中。 - J. Jackson