Estou projetando um site (por exemplo, mywebsite.com) e este site carrega fontes font-face de outro site (digamos, anothersite.com). Eu estava tendo problemas com o carregamento de fontes da face da fonte no Firefox e continuei lendo neste blog :
O Firefox (que oferece suporte a @ font-face da v3.5) não permite fontes entre domínios por padrão. Isso significa que a fonte deve ser fornecida a partir do mesmo domínio (e subdomínio), a menos que você possa adicionar um cabeçalho “Access-Control-Allow-Origin” à fonte.
Como posso definir o cabeçalho Access-Control-Allow-Origin para a fonte?
Respostas:
Então o que você faz é ... Na pasta de arquivos de fontes, coloque um arquivo htaccess com o seguinte.
também em seu arquivo CSS remoto, a declaração da face da fonte precisa do URL absoluto completo do arquivo da fonte (não é necessário nos arquivos CSS locais):
por exemplo
Isso vai resolver o problema. Uma coisa a observar é que você pode especificar exatamente quais domínios devem ter permissão para acessar sua fonte. No htaccess acima, especifiquei que todos podem acessar minha fonte, no
"*"
entanto, você pode limitá-la a:Um único URL:
Conjunto de cabeçalhos Access-Control-Allow-Origin http://example.com
Ou uma lista de URLs delimitada por vírgulasAccess-Control-Allow-Origin: http://site1.com,http://site2.com
(Vários valores não são suportados nas implementações atuais)
fonte
url('/fonts/League_Gothic.woff') format('woff')
é suficiente supondo que você mantenha a pasta 'fonts' no mesmo diretório que o seu arquivo .css.De acordo com os documentos oficiais , os navegadores não gostam quando você usa o
cabeçalho se você também estiver usando o
cabeçalho. Em vez disso, eles querem que você permita especificamente sua origem. Se você ainda deseja permitir todas as origens, pode fazer uma mágica simples do Apache para fazê-lo funcionar (certifique-se de ter
mod_headers
ativado):Os navegadores são obrigados a enviar o
Origin
cabeçalho em todas as solicitações entre domínios. Os documentos declaram especificamente que você precisa repetir esse cabeçalho noAccess-Control-Allow-Origin
cabeçalho se estiver aceitando / planejando aceitar a solicitação. É isso que estaHeader
diretiva está fazendo.fonte
?yourdomain
obras em último caso, mas desvaloriza os benefícios de usar um CDN um pouco)SetEnvIfNoCase Origin (.+) HTTP_ORIGIN=$1
.A resposta aceita não funciona para mim, infelizmente, uma vez que os arquivos CSS do meu site @importam os arquivos CSS da fonte, e todos eles estão armazenados em um Rackspace Cloud Files CDN.
Como os cabeçalhos do Apache nunca são gerados (já que meu CSS não está no Apache), tive que fazer várias coisas:
Veja se consegue se safar com apenas o # 1, já que o segundo requer um pouco de trabalho na linha de comando.
Para adicionar o cabeçalho personalizado em # 1:
Se você precisar continuar e fazer o # 2, precisará de uma linha de comando com CURL
Dos resultados retornados, extraia os valores de X-Auth-Token e X-Storage-Url
Claro, esse processo só funciona se você estiver usando o Rackspace CDN. Outros CDNs podem oferecer recursos semelhantes para editar cabeçalhos de objetos e alterar tipos de conteúdo, então talvez você tenha sorte (e publique algumas informações extras aqui).
fonte
Para aplicativos baseados em Java, adicione ao seu arquivo web.xml:
fonte
Verifique este link .. Definitivamente resolverá seu problema .. Existem muitas soluções para fazer chamadas de domínio cruzado GET Ajax, MAS PÓS-PEDIDO DE CROSS DOMAIN ESTÁ RESOLVIDO AQUI . Levei 3 dias para descobrir.
http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/20/implementing-cors-support-in-asp-net-web-apis.aspx
fonte
Em seu arquivo.php de solicitação ajax, pode definir o cabeçalho do valor.
fonte