htaccess Access-Control-Allow-Origin

Estou criando um script que carrega externamente em outros sites. Ele carrega CSS e HTML e funciona bem em meus próprios servidores.

No entanto, quando eu tento em outro site, ele exibe esse erro horrível:

Access-Control-Allow-Origin 

Aqui você pode ver que ele carrega perfeitamente: http://tzook.info/bot/

Mas neste outro site mostra o erro: http://cantloseweight.co/robot/

Eu carreguei o script de carregamento para jsfiddle: http://jsfiddle.net/TL5LK/

Eu tentei editar o arquivo htaccess assim:

  Header set Access-Control-Allow-Origin *  

Ou assim:

 Header set Access-Control-Allow-Origin * 

Mas ainda não funciona.

Tente isso no .htaccess da pasta raiz externa:

  Header set Access-Control-Allow-Origin "*"  

E se for apenas sobre scripts .js, você deve include o código acima dentro disso:

  ...  

ninguém diz que você também tem que ter os mod_headers habilitados, então se ainda não estiver funcionando, tente isto:

(seguindo dicas funciona no Ubuntu, não sei sobre outras distribuições)

você pode verificar a lista de módulos carregados com

 apache2ctl -M 

para habilitar mod_headers você pode usar

 a2enmod headers 

Claro que depois de qualquer alteração no Apache você tem que reiniciá-lo:

 /etc/init.d/apache2 restart 

Então você pode usar

  Header set Access-Control-Allow-Origin "*"  

E se mod_headers não estiver ativo, esta linha não fará nada. Você pode tentar ignorar se cláusula e apenas adicionar Header set Access-Control-Allow-Origin "*" em sua configuração, então ele deve lançar erro durante o início se mod_headers não estiver ativo.

da minha experiência;

se não funcionar de dentro do php faça isso no .htaccess funcionou para mim

  Header set Access-Control-Allow-Origin http://www.vknyvz.com Header set Access-Control-Allow-Credentials true  
  • credenciais podem ser verdadeiras ou falsas, dependendo da sua params solicitação ajax

No Zend Framework 2.0, tive esse problema. Pode ser resolvido de duas maneiras. Htaccess ou php header eu prefiro. Htaccess assim que eu modifiquei. Htaccess de:

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] 

para

 RewriteEngine On  Header set Access-Control-Allow-Origin "*"  RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] 

e começa a funcionar

Adicione um arquivo .htaccess com as seguintes diretivas à sua pasta de fonts, se tiver problemas para acessar suas fonts. Pode ser facilmente modificado para uso com arquivos .css ou .js .

  Header set Access-Control-Allow-Origin "*"  

As outras respostas não funcionaram para mim, foi o que acabou fazendo o truque para o apache2:

1) Ative o mod de headers:

sudo a2enmod headers

2) Crie o arquivo /etc/apache2/mods-enabled/headers.conf e insira:

  Header set Access-Control-Allow-Origin "*"  

3) Reinicie seu servidor:

sudo service apache2 restart

BTW: a configuração do .htaccess deve ser feita no servidor que hospeda a API. Por exemplo, você cria um aplicativo AngularJS no domínio x.com e cria uma API Rest em y.com, você deve definir Access-Control-Allow-Origin “*” no arquivo .htaccess na pasta raiz de y.com não x .com 🙂

  Header set Access-Control-Allow-Origin "*"  

Além disso, como Lukas mencionou, certifique-se de ter ativado os mod_headers se você usar o Apache

Certifique-se de que você não tenha um redirecionamento acontecendo. Isso pode acontecer se você não include a barra no final do URL.

Veja esta resposta para mais detalhes – https://stackoverflow.com/a/27872891/614524