htaccess Access-Control-Allow-Origin

Tworzę skrypt, który ładuje się zewnętrznie na innych stronach. Ładuje CSS i HTML i działa dobrze na moich własnych serwerach.

Jednak, gdy próbuję go na innej stronie wyświetla ten okropny błąd:

Access-Control-Allow-Origin

Tutaj widać, że ładuje się idealnie: http://tzook.info/bot/

Ale na tej drugiej stronie pokazuje błąd: http://cantloseweight.co/robot/

Załadowałem skrypt ładowania do jsfiddle: http://jsfiddle.net/TL5LK/

Próbowałem edytować plik htaccess tak:

<IfModule mod_headers.c>    
    Header set Access-Control-Allow-Origin *
</IfModule>

Lub w ten sposób:

Header set Access-Control-Allow-Origin *
Ale nadal nie działa.
Author: Nate, 2012-11-16

8 answers

Spróbuj tego w .htaccess zewnętrznego folderu głównego:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

I jeśli to tylko dotyczy .Skrypty js powinieneś zawinąć powyższy kod wewnątrz tego:

<FilesMatch "\.(js)$">
...
</FilesMatch>
 181
Author: vifargent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-14 00:40:09

Nikt nie mówi, że musisz również mieć mod_headers włączone, 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ą

apache2ctl -M

Aby włączyć mod_headers możesz użyć

a2enmod headers

Oczywiście po jakichkolwiek zmianach w Apache ' u trzeba go zrestartować:

/etc/init.d/apache2 restart

Wtedy możesz użyć

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

I jeśli mod_headers nie jest aktywny, ta linia nie zrobi nic w wszystkie. Możesz spróbować pominąć klauzulę if I po prostu dodać Header set Access-Control-Allow-Origin "*" do konfiguratora, wtedy powinien pojawić się błąd podczas startu, jeśli mod_headers nie jest aktywny.

 34
Author: Lukas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-02 15:22:06

Z mojego doświadczenia;

If it doesn ' t work from within php do this in .htaccess it worked for me

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin http://www.vknyvz.com  
    Header set Access-Control-Allow-Credentials true
</IfModule>
  • poświadczenia mogą być prawdziwe lub fałszywe w zależności od param żądania ajax
 24
Author: vknyvz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-14 15:06:24

Dodaj plik .htaccess z następującymi dyrektywami do folderu czcionek, jeśli masz problemy z dostępem do czcionek. Można łatwo modyfikować do użycia z .css lub .Pliki js.

<FilesMatch "\.(eot|ttf|otf|woff)">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>
 8
Author: Thoman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-07 03:21:08

W Zend Framework 2.0 miałem taki problem. Można rozwiązać na dwa sposoby .htaccess lub php header wolę .htaccess więc zmodyfikowałem .htaccess from:

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

Do

RewriteEngine On

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

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

I zaczyna działać

 7
Author: YumYumYum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-13 05:40:39

Inne odpowiedzi nie zadziałały dla mnie, to właśnie ostatecznie zrobiło sztuczkę dla apache2:

1) Włącz Mod nagłówków:

sudo a2enmod headers

2) Utwórz plik /etc/apache2/mods-enabled/headers.conf i wstaw:

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

3) zrestartuj serwer:

sudo service apache2 restart

 6
Author: shongololo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-07 08:01:04

BTW: the .konfiguracja htaccess musi być wykonana na serwerze hostującym API. Na przykład tworzysz aplikację AngularJS na x.com domeny i stwórz Rest API na y.com, powinieneś ustawić Access-Control-Allow-Origin " * " w .plik htaccess w katalogu głównym y.com nie x.com :)

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

Również jak Lukas wspomniał upewnij się, że masz włączone mod_headers jeśli używasz Apache

 3
Author: Saman Shafigh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-27 22:43:02

Upewnij się, że nie masz przekierowania. Może się to zdarzyć, jeśli nie umieścisz końcowego ukośnika w adresie URL.

Zobacz tę odpowiedź Po Więcej Szczegółów – https://stackoverflow.com/a/27872891/614524

 1
Author: JDavis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:38