Nuxt.js Проблема с кэшированием и проблема ‘Access-Control-Allow-Headers’

#axios #http-headers #nuxt.js #web-deployment

#axios #http-заголовки #nuxt.js #веб-развертывание

Вопрос:

Я только что развернул приложение nuxt на сервере, но оно плохо кэшируется. на любом устройстве, вошедшем в систему или нет, я получаю одну информацию о пользователе, это cookie и токен! Я попытался выяснить, в чем проблема, я искал, и теперь я думаю, потому cache-control: public что с max-age=31536000 помощью, теперь я попытался установить его в private или no-cache .

У меня есть два вопроса:

  1. какое cache-control значение я должен использовать? private или no-cache и т. Д.? или даже эта проблема связана с кэшированием?
  2. когда я пытаюсь установить заголовки axios nuxt.config.js , я получаю эту ошибку:

Access to XMLHttpRequest at 'url of the backend' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field cache-control is not allowed by Access-Control-Allow-Headers in preflight response.

Я пытался установить Access-Control-Allow-Headers , но это не сработало, моя nuxt.config.js часть axios выглядит так:

 axios: {
        baseURL: 'backend',
        headers: {
            common: {
                'Access-Control-Allow-Headers': 'cache-control',
                'cache-control': 'private',
            },
        },
    }
 

Спасибо.

Ответ №1:

Через некоторое время я нашел ответ, Nuxt.js по умолчанию кэшируются все ответы (это не имеет никакого отношения к запросам axios) на узловом сервере, поэтому, если вы хотите исправить эту ситуацию, добавьте cache: false build свойство в nuxt.config.js для универсального режима (для статического режима добавьте это свойство в generate )

 // nuxt.config.js

{
// ...

  build: {
      cache: false
  }

// ...
}
 

Дополнительная информация в документах