我的根目录中有一个文件api.js
,它负责调用外部 API(请求和响应拦截器)。我正在使用它来注入 access_token,所以我的请求拦截器看起来像这样;
import axios from 'axios';
const api = axios.create({
baseURL: process.env.NEXT_PUBLIC_API_URL
});
// Add request interceptor
api.interceptors.request.use(
async config => {
const token = localStorage.getItem('access_token');
if (token) {
config.headers['Authorization'] = 'Bearer ' + token;
}
config.headers['Content-Type'] = 'application/json';
config.headers['Accept'] = 'application/json';
return config;
},
error => {
Promise.reject(error);
}
);
在我的页面目录中,我有一个名为 users.js 的文件......我要做的就是从我的外部 API 返回用户列表,并在/users
页面加载时将其显示在网格中。我的users.js
文件目前看起来像这样;
import api from "../services/api"
export default function Users() {
return (
<div>
</div>
)
}
export async function getStaticProps() {
const res = await api.get('/accounts');
}
但是当我运行它时,我收到以下错误;
ReferenceError: localStorage is not defined
该错误api.js
在以下行引用了该文件;
const token = localStorage.getItem('access_token');
我似乎无法弄清楚发生了什么。任何帮助将不胜感激