【发布时间】:2020-09-12 10:01:01
【问题描述】:
我已经尝试了两天了。我是 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 Not Authorized 错误,基本上说明我的 Authorization: Bearer <token> 没有通过。但是,使用 Postman,我可以验证该端点确实可以工作并返回我需要的所有 JSON,因此问题必须出在我设置 axios 全局标头的方式上。
很难找到任何关于如何使用 Nuxt/Axios 模块设置全局标头的真实示例。我在docs 中看到了如何使用setToken,但是它并没有准确地显示将其放置在哪里。
我的设置有什么问题,我该如何解决?
【问题讨论】: