#javascript #reactjs #react-native
#javascript #reactjs #реагировать — родной
Вопрос:
Я пытаюсь получить данные из API конечной точки с помощью axios, но появляется эта ошибка: не могу найти токен, не могли бы вы мне помочь?? Это мой код, первый файл — это запрос, а второй файл — это код, в котором я пытаюсь получить данные.
файл запроса:
import axios from "axios"
let axiosApiInstance = axios.create();
function setToken(token,RefreshToken) {
axios.defaults.headers.common['x-access-token'] = token;
axiosApiInstance.interceptors.response.use((response) => {
return response
}, async function (error) {
const originalRequest = error.config;
if (error.response.status === 401 amp;amp; !originalRequest._retry) {
originalRequest._retry = true;
axios.defaults.headers.common['x-refresh-token'] = RefreshToken;
return axiosApiInstance(originalRequest);
}
return Promise.reject(error);
});
}
export default {
get: axios.get,
post: axios.post,
delete: axios.delete,
put: axios.put,
setToken: setToken,
}
это код, который я использую для получения данных на экране
useEffect(() => {
getData();
return () => {};
}, []);
const getData = async () => {
request
.get("http://18.156.84.96:5000/api/client/orders/get-orders/1/Active", {
headers: {
Authorization: `${token}`,
},
})
.then((res) => {
console.log(res.data);
})
.catch((error) => {
console.error(error);
});
};
Комментарии:
1. токен недоступен в функции useEffect . Вы должны изменить setToken, чтобы установить заголовок авторизации по умолчанию или предоставить для ввода второй функции.
Ответ №1:
Измените функцию setToken, чтобы установить токен следующим образом:
// Add a request interceptor
axios.interceptors.request.use(function (config) {
config.headers.Authorization = token;
return config;
});
И удалите объекты headers из запроса get, поскольку токен здесь недоступен
Комментарии:
1. Как насчет токена обновления в функции setToken, потому что мне это тоже нужно