304 com o CORS no apache

5

Eu tenho uma API REST que retorna um código de status 304 Not Modified para alguma solicitação (que tem cabeçalho If-Modified-Since). O problema é que o software apache2 retira qualquer cabeçalho CORS antes de a resposta ser enviada ao navegador.

Isso acontece somente quando o código de status é 304 . Qualquer outro ponto final funciona muito bem com o CORS. Todas as solicitações de pré-vôo também funcionam bem.

Eu li na internet que o Apache faz isso para cumprir algumas especificações, mas não posso acreditar que o CORS com 304 não deva funcionar nas especificações.

Existe alguma maneira de conseguir isso com o apache?

Atualização:

Meu 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);

Eu recebo um erro:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xxx.domain.com' is therefore not allowed access.

    
por user237329 13.01.2016 / 05:37

1 resposta

1

Os 304 não precisam incluir os cabeçalhos CORS. Os navegadores devem ver o 304 e usar o cache.

link

CORS doesn't require those headers on a 304, and indeed browsers work without them present on it. This is because many 304s are generated from intermediary caches that can't be updated to know about CORS.

    
por 13.01.2016 / 08:10