
No arquivo .htaccess em meu servidor web, tenho o seguinte conjunto de cabeçalho CORS:
Header set Access-Control-Allow-Origin "example.com"
Em um dos meus scripts PHP, que chamo frequentemente enquanto trabalho no localhost, tenho este cabeçalho definido:
header("Access-Control-Allow-Origin: *");
Isso funcionou para mim até ontem, quando ativei o FPM para PHP. Agora recebo o seguinte erro:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.example.com/script.php. (Reason: CORS header 'Access-Control-Allow-Origin' does not match '*, example.com').
Só estou recebendo esse erro ao ligar do localhost, não ao ligar do site. Estou me perguntando se existe uma maneira de substituir o .htaccess
cabeçalho CORS via PHP agora que o FPM está habilitado.
Responder1
Motivo: o cabeçalho CORS 'Access-Control-Allow-Origin' não corresponde a '*, example.com'
Curioso, é como se Header merge
tivesse sido chamado, em vez de Header set
? Valores "mesclados" como este não são oficialmente suportados pelo Allow-Control-Allow-Origin
cabeçalho, portanto, o suporte do navegador pode variar e explicará por que não está funcionando para você.
se houver uma maneira de substituir o
.htaccess
cabeçalho CORS via PHP agora que o FPM está habilitado.
Eu acho que você precisará tentar fazer com que o Apache não substitua o cabeçalho definido pelo PHP (que foi definido anteriormente), em vez de o PHP substituir o Apache. Experimente a setifempty
ação:
Header setifempty Access-Control-Allow-Origin "example.com"
Você também pode tentar a always
condição, ou seja. Header always set ....
- este é um "grupo" de cabeçalhos diferente dopadrão onsuccess
e deve significar que o cabeçalho está efetivamente definido duas vezes.
No entanto, também não acredito que vários Access-Control-Allow-Origin
cabeçalhos façam parte estritamente do padrão, portanto, o comportamento do navegador pode variar.
Veja também a seguinte pergunta relacionada no StackOverflow: