Назад | Перейти на главную страницу

304 с CORS на apache

У меня есть REST API, который возвращает 304 Not Modified код состояния для некоторого запроса (с заголовком If-Modified-Since). Проблема в том, что программное обеспечение apache2 удаляет любой заголовок CORS перед отправкой ответа в браузер.

Это происходит только тогда, когда код состояния 304. Любая другая конечная точка отлично работает с CORS. Все предполетные запросы тоже отлично работают.

Я читал в Интернете, что Apache делает это для соответствия некоторым спецификациям, но я не могу поверить, что CORS с 304 не должен работать в спецификациях.

Есть ли способ добиться этого с помощью apache?

Обновить:

Мой javascript

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://api.domain.com/api/endpoint?token='+localStorage.getItem('token'));
xhr.setRequestHeader("If-Modified-Since", "Mon, 11 Jan 2016 15:46:54 GMT");
xhr.send(null);

Я получаю сообщение об ошибке:

На запрошенном ресурсе отсутствует заголовок Access-Control-Allow-Origin. Происхождение 'http://xxx.domain.com'поэтому не разрешен доступ.

304 не нужно включать заголовки CORS. Браузеры должны видеть 304 и использовать кеш.

https://bz.apache.org/bugzilla/show_bug.cgi?id=51223#c1

CORS не требует этих заголовков на 304, и действительно, браузеры работают без них. Это связано с тем, что многие 304 сгенерированы из промежуточных кешей, которые нельзя обновить, чтобы узнать о CORS.