У меня есть компонент vue, который первоначально отправляет запрос в шлюз API, связанный с лямбда-функцией, и отображает загруженные данные. Пользователь имеет возможность применять определенные фильтры, а затем новый запрос с заданными параметрами поиска отправляется на AWS API Gateway. Чтобы сохранить результаты, я обернул компонент в средство поддержки.
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
Однако после определенного времени бездействия в течение примерно 10 минут, если пользователь пытается выполнить новый поиск, происходит сбой CORS (причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).
Вот код, как я называю API
async init() {
const user = await Auth.currentAuthenticatedUser();
const token = user.signInUserSession.idToken.jwtToken;
this.token = token
this.isInitialized = true;
}
async initHelper() {
if (!this.isInitialized) {
await this.init();
}
}
async performGetRequest(endpoint) {
await this.initHelper();
try {
const request = {
body: {},
headers: {
Authorization: this.token,
}
};
const result = await API.get('xxxxx', endpoint, request);
return result;
} catch (error) {
console.log('error performing get request');
console.log(error);
}
}
У кого-нибудь есть предложения, как это исправить? Очевидно, что CORS включен в шлюзе API, и эта ошибка возникает только в связи с vue keep alive.
Обновление: ОК. Мне удалось самостоятельно найти проблему, я удалил одноразовую инициализацию, казалось, что срок действия токена истек, поэтому предварительный полет не удался из-за пользовательской авторизации