У меня есть axios apiClient
, и я пытаюсь получить письмо, хранящееся в localStorage
, в заголовок. В моем компоненте я пытался использовать
response.headers['email']
и присваиваю его переменной электронной почты, но я получаю неопределенность. Я получаю электронное письмо в localStorage
, но не могу получить его в компоненте. Любая помощь будет оценена.
Аксиос
const apiClient = axios.create({
baseURL: `${API}`,
withCredentials: false,
headers: {
Accept: "application/json",
"Content-Type": "application/json"
}
});
apiClient.interceptors.request.use(function (config) {
let token = JSON.parse(localStorage.getItem('token'));
let email = JSON.parse(localStorage.getItem('email'));
if (token) {
config.headers.Authorization = `Bearer ${token}`;
config.headers.email = `${email}`;
}
return config;
}, function (err) {
return Promise.reject(err);
});
Вот метод в моем компоненте, где мне нужны данные электронной почты
methods: {
getOrders(){
service.getAllOrders()
.then(response => {
this.email = response.headers['email'];
console.info("email:", this.email)
})
}
}
getAllOrders()
делает аксиос get
.
Вы устанавливаете перехватчик запроса, но проверяете заголовок ответа, а это два разных объекта. Ответ исходит от сервера и не будет затронут перехватчиком запросов.
Вы можете создать другой перехватчик для ответа:
apiClient.interceptors.response.use((response) => {
response.headers.email = JSON.parse(localStorage.getItem('email'));
return response;
});