Não consigo descobrir por que minhas .htaccess
configurações de cabeçalho não funcionam.
.htaccess
Conteúdo do meu arquivo:
Header set Access-Control-Allow-Origin *
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Allow-Headers "*"
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Mas quando eu removo Header
e os adiciono index.php
, tudo funciona bem.
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: *");
O que estou perdendo?
.htaccess
mod-rewrite
rewrite
cors
user1401592
fonte
fonte
a2enmod headers
Header set
neste caso. Se o código for alterado e ele definir o cabeçalho, fazer o Apache fazer umheader add
enviará cabeçalhos ** duplos. Isso quebrará clientes como Restangular, por exemplo.Header add Access-Control-Allow-Credentials "true"
Apenas para registro, eu estava tendo exatamente o mesmo problema e nenhuma das respostas funcionou.
Usei uma ferramenta de verificação de cabeçalhos: http://www.webconfs.com/http-header-check.php
Estava testando com meu IP (
http://192.0.2.1/upload
) e o que voltou foi o seguinte:Ocorreu um redirecionamento e a solicitação AJAX não honra / segue redirecionamentos.
Descobriu-se que era a barra que faltava no final do domínio ( http://192.0.2.1/upload / )
Testei novamente com barra no final e consegui isso abaixo. Também foi adicionada uma barra ao script e agora estava funcionando.
Use esta ferramenta para testar se seus cabeçalhos são bons e para solucionar o que está acontecendo.
fonte
Eu tenho uma hospedagem compartilhada no GoDaddy. Eu precisava de uma resposta para essa pergunta também, e depois de pesquisar, descobri que é possível.
Eu escrevi um arquivo .htaccess, coloque-o na mesma pasta que minha página de ação. Aqui está o conteúdo do arquivo .htaccess:
Aqui está a minha chamada ajax:
Veja este artigo para referência:
O conjunto de cabeçalho Access-Control-Allow-Origin em .htaccess não funciona
fonte
Tenha cuidado com:
Não é nada judicioso conceder acesso a todos. É preferível permitir uma lista de hosts confiáveis conhecidos apenas ...
Saudações,
fonte
Eu ativei os cabeçalhos a2enmod dos cabeçalhos do módulo Apache e o problema foi resolvido.
fonte
sudo a2enmod headers
e uma reinicialização fez com que funcionasse!Tente isso no .htaccess da pasta raiz externa
Tenha cuidado com: Header add Access-Control-Allow-Origin "*" Isso não é judicioso para conceder acesso a todos. Acho que você deve usar:
fonte
Eu marquei a resposta de Miro com +1 para o link para o site do verificador de cabeçalho http://www.webconfs.com/http-header-check.php . Ele exibe um anúncio desagradável toda vez que você o usa, mas é, no entanto, muito útil para verificar a presença do cabeçalho Access-Control-Allow-Origin.
Estou lendo um arquivo .json do javascript em minha página da web. Descobri que adicionar o seguinte ao meu arquivo .htaccess corrigiu o problema ao visualizar minha página da web no IE 11 (versão 11.447.14393.0):
Também adicionei o seguinte ao /etc/httpd.conf (arquivo de configuração do Apache):
O site do verificador de cabeçalho verificou se o cabeçalho Access-Control-Allow-Origin está sendo enviado (obrigado, Miro!).
No entanto, Firefox 50.0.2, Opera 41.0.2353.69 e Edge 38.14393.0.0 buscam o arquivo de qualquer maneira, mesmo sem o cabeçalho Access-Control-Allow-Origin. (Observação: eles podem estar verificando endereços IP, já que os dois domínios que eu estava usando estão hospedados no mesmo servidor, no mesmo endereço IPv4.)
No entanto, o Chrome 54.0.2840.99 m (64 bits) ignora o cabeçalho Access-Control-Allow-Origin e falha de qualquer maneira, relatando erroneamente:
Acho que isso tem que ser algum tipo de "primeiro". O IE está funcionando corretamente; Chrome, Firefox, Opera e Edge são todos bugados; e o Chrome é o pior . Não é exatamente o oposto do caso usual?
fonte
Depois de passar meio dia sem nada funcionando. Usando um serviço de verificação de cabeçalho, embora tudo estivesse funcionando. O firewall no trabalho estava removendo-os
fonte
tente isto:
É preferível permitir uma lista de hosts confiáveis conhecidos.
fonte
Se alguém está tentando fazer isso, a resposta mais votada deve funcionar. No entanto, se você estiver tendo problemas, é possível que o navegador tenha armazenado em cache o REQUEST. Para confirmar, acrescente uma string de consulta.
fonte