Почему в кеш попадают без Access-Control-Allow-Origin?

Access-Control-Allow-Origin - это заголовок, используемый в протоколе HTTP, который указывает, какие источники могут получать доступ к ресурсам с сервера. Он используется для реализации политики одного источника (same-origin policy) в браузерах, которая ограничивает доступ к ресурсам только с того же источника.

В Symfony, как во многих других фреймворках, у вас может быть настроена система кэширования. Symfony предоставляет несколько различных механизмов кэширования, таких как Memcached, Redis и файловое хранилище.

Если в кеш попадают ресурсы без заголовка Access-Control-Allow-Origin, это может быть вызвано несколькими причинами:

1. Неправильная настройка сервера. Возможно, ваш сервер Symfony или его настройки не устанавливают этот заголовок правильно. При настройке сервера вам нужно убедиться, что вы добавили заголовок Access-Control-Allow-Origin со значением, разрешающим доступ к вашему ресурсу. Например, значения "Origin", "*", или доменного имени, которому разрешен доступ.

2. Кэширование без учета заголовка. Если вы используете какой-то механизм кэширования в Symfony, он может не учитывать заголовок Access-Control-Allow-Origin при кэшировании ресурса. В этом случае, даже если вы установили этот заголовок для динамического ресурса, он может быть утерян при кэшировании и использовании кэшированной версии ресурса.

3. Прокси-серверы. Если ваше приложение Symfony находится за прокси-сервером или обратным прокси, то возможно, прокси-сервер не передает заголовок Access-Control-Allow-Origin в ответе. В этом случае заголовок может быть утерян на этапе передачи ответа клиенту.

Для решения этой проблемы вам следует проверить настройки сервера Symfony, включив возможность добавления заголовка Access-Control-Allow-Origin. Также, если вы используете какой-то механизм кэширования в Symfony, убедитесь, что он учитывает этот заголовок. Если у вас есть прокси-серверы, проверьте их настройки, чтобы убедиться, что заголовок правильно передается клиенту.