Projektuję witrynę internetową (np. Mywebsite.com), a ta witryna ładuje czcionki czcionek z innej witryny (np. Anothersite.com). Miałem problemy z ładowaniem czcionki kroju czcionki w przeglądarce Firefox i czytałem na tym blogu :
Firefox (który obsługuje @ font-face od wersji 3.5) domyślnie nie zezwala na czcionki międzydomenowe. Oznacza to, że czcionka musi być obsługiwana z tej samej domeny (i subdomeny), chyba że można dodać do czcionki nagłówek „Access-Control-Allow-Origin”.
Jak mogę ustawić nagłówek Access-Control-Allow-Origin na czcionkę?
Odpowiedzi:
Więc to, co robisz, to ... W folderze plików czcionek umieść plik htaccess zawierający następujące elementy.
również w zdalnym pliku CSS deklaracja font-face wymaga pełnego bezwzględnego adresu URL pliku czcionki (nie jest potrzebny w lokalnych plikach CSS):
na przykład
To rozwiąże problem. Należy pamiętać, że możesz dokładnie określić, które domeny powinny mieć dostęp do Twojej czcionki. W powyższym htaccess określiłem, że każdy może uzyskać dostęp do mojej czcionki,
"*"
ale możesz go ograniczyć do:Pojedynczy adres URL:
Zestaw nagłówków Access-Control-Allow-Origin http://example.com
Lub lista adresów URL rozdzielonych przecinkamiAccess-Control-Allow-Origin: http://site1.com,http://site2.com
(Wiele wartości nie jest obsługiwanych w obecnych implementacjach)
źródło
url('/fonts/League_Gothic.woff') format('woff')
jest wystarczająco zakładając zachować folder „Czcionki” w tym samym katalogu, co plik .css.Zgodnie z oficjalną dokumentacją przeglądarki nie lubią, gdy używasz rozszerzenia
nagłówek, jeśli używasz również
nagłówek. Zamiast tego chcą, abyś pozwolił konkretnie na ich pochodzenie. Jeśli nadal chcesz zezwalać na wszystkie źródła, możesz wykonać prostą magię Apache, aby działała (upewnij się, że jest
mod_headers
włączona):Przeglądarki muszą wysyłać
Origin
nagłówek we wszystkich żądaniach między domenami. Dokumenty wyraźnie stwierdzają, że musisz powtórzyć ten nagłówek z powrotem wAccess-Control-Allow-Origin
nagłówku, jeśli akceptujesz / planujesz przyjąć żądanie. To właśnie robi taHeader
dyrektywa.źródło
?yourdomain
działaniami w tym drugim przypadku, ale nieco dewaluuje korzyści płynące z korzystania z CDN)SetEnvIfNoCase Origin (.+) HTTP_ORIGIN=$1
.Zaakceptowana odpowiedź niestety nie działa dla mnie, ponieważ pliki CSS mojej witryny @ importują pliki CSS czcionek, a wszystkie są przechowywane na CDN Rackspace Cloud Files.
Ponieważ nagłówki Apache nigdy nie są generowane (ponieważ mojego CSS nie ma na Apache), musiałem zrobić kilka rzeczy:
Sprawdź, czy uda ci się uciec tylko z numerem 1, ponieważ drugi wymaga trochę pracy z wiersza poleceń.
Aby dodać niestandardowy nagłówek w # 1:
Jeśli chcesz kontynuować i zrobić # 2, potrzebujesz wiersza poleceń z CURL
Z zwróconych wyników wyodrębnij wartości X-Auth-Token i X-Storage-Url
Oczywiście ten proces działa tylko wtedy, gdy używasz Rackspace CDN. Inne sieci CDN mogą oferować podobne możliwości edycji nagłówków obiektów i zmiany typów zawartości, więc może będziesz miał szczęście (i opublikujesz tutaj dodatkowe informacje).
źródło
W przypadku aplikacji opartej na języku Java dodaj to do pliku web.xml:
źródło
Sprawdź ten link .. To na pewno rozwiąże Twój problem. Istnieje wiele rozwiązań umożliwiających nawiązywanie połączeń międzydomenowych GET Ajax, ALE PROŚBA O PUBLIKACJĘ O CROSS DOMAIN JEST ROZWIĄZANA TUTAJ . Zajęło mi to 3 dni.
http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/20/implementing-cors-support-in-asp-net-web-apis.aspx
źródło
W pliku file.php żądania ajax, można ustawić nagłówek wartości.
źródło