Tworzę skrypt, który ładuje się zewnętrznie w innych witrynach. Ładuje CSS i HTML i działa dobrze na moich własnych serwerach.
Jednak gdy próbuję go na innej stronie internetowej, wyświetla ten okropny błąd:
Access-Control-Allow-Origin
Tutaj możesz zobaczyć, że ładuje się idealnie: http://tzook.info/bot/
Ale na tej innej stronie pokazuje błąd: http://cantloseweight.co/robot/
Wgrałem skrypt ładowania do jsfiddle: http://jsfiddle.net/TL5LK/
Próbowałem edytować plik htaccess w ten sposób:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin *
</IfModule>
Lub tak:
Header set Access-Control-Allow-Origin *
Ale to nadal nie działa.
.htaccess
cors
cross-domain
Tzook Bar Noy
źródło
źródło
FilesMatch
.*
zrobi?js
najson
.*
dowolnej domenie pochodzenia na dostęp do tego zasobu. To nie jest lista zasobów, ale lista odwołań do domen.headers
moduł:a2enmod headers
nikt nie mówi, że musisz mieć również włączone mod_headers , więc jeśli nadal nie działa, spróbuj tego:
(poniższe wskazówki działają na Ubuntu, nie wiem o innych dystrybucjach)
możesz sprawdzić listę załadowanych modułów za pomocą
aby włączyć mod_headers, których możesz użyć
oczywiście po jakichkolwiek zmianach w Apache trzeba go zrestartować:
Następnie możesz użyć
A jeśli mod_headers nie jest aktywne, ta linia nic nie zrobi. Możesz spróbować pominąć klauzulę if i po prostu dodać
Header set Access-Control-Allow-Origin "*"
do swojej konfiguracji, to powinno wyświetlić błąd podczas startu, jeśli mod_headers nie jest aktywny.źródło
z mojego doświadczenia;
jeśli to nie działa od wewnątrz,
php
zrób to w.htaccess
moim przypadkuźródło
Dodaj
.htaccess
plik z następującymi dyrektywami do folderu czcionek, jeśli masz problemy z dostępem do czcionek. Można go łatwo zmodyfikować do użytku z plikami .css lub .js .źródło
<FilesMatch>
dyrektywa jest niepotrzebna, jeśli , jak sugerowano powyżej, Twój.htaccess
plik jest w katalogu czcionek , a nasz katalog czcionek tylko zawiera.eot
,.ttf
,.otf
I / lub.woff
pliki.Inne odpowiedzi nie działały dla mnie, oto, co ostatecznie załatwiło sprawę dla Apache2:
1) Włącz mod nagłówków:
sudo a2enmod headers
2) Utwórz
/etc/apache2/mods-enabled/headers.conf
plik i wstaw:3) Uruchom ponownie serwer:
sudo service apache2 restart
źródło
W Zend Framework 2.0 miałem ten problem. Można to rozwiązać na dwa sposoby .htaccess lub nagłówek php, wolę .htaccess, więc zmodyfikowałem .htaccess z:
do
i zaczyna działać
źródło
BTW: konfigurację .htaccess należy wykonać na serwerze obsługującym API. Na przykład, gdy tworzysz aplikację AngularJS w domenie x.com i tworzysz Rest API na y.com, powinieneś ustawić Access-Control-Allow-Origin „*” w pliku .htaccess w głównym folderze y.com, a nie x .com :)
Jak wspomniał Lukas, upewnij się, że masz włączone mod_headers, jeśli używasz Apache
źródło
Upewnij się, że nie dzieje się przekierowanie. Może się tak zdarzyć, jeśli nie umieścisz końcowego ukośnika w adresie URL.
Zobacz tę odpowiedź, aby uzyskać więcej informacji - https://stackoverflow.com/a/27872891/614524
źródło
Jeśli twój host nie jest na pvn lub dedykowany, trudno jest zrestartować serwer.
Lepsze rozwiązanie ode mnie, po prostu edytuj swój plik CSS (w innej domenie lub subdomenie), który wywołuje czcionkę eot, woff itp. Do Twojego pochodzenia (twoja-domena lub www twoja_domena). to rozwiąże twój problem.
Mam na myśli, edytuj względny adres URL w css do domeny pochodzenia bezwzględnego adresu URL
źródło