htaccess Access-Control-Allow-Origin



Я создаю скрипт, который загружается извне на других сайтах. Он загружает CSS и HTML и отлично работает на моих собственных серверах.



однако, когда я попробовать его на другом сайте, он отображает эту ужасную ошибку:



Access-Control-Allow-Origin


здесь вы можете увидеть, что он отлично загружается:http://tzook.info/bot/



но на этом сайте он показывает ошибку:
http://cantloseweight.co/robot/



Я загрузил скрипт загрузки jsfiddle:
http://jsfiddle.net/TL5LK/



Я попытался отредактировать файл htaccess следующим образом:



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


или такой:



Header set Access-Control-Allow-Origin *


но это все равно не сработает.

1743   8  

8 ответов:

попробуйте это в .htaccess внешней корневой папки:

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

и если это только касается .js скрипты вы должны обернуть приведенный выше код внутри этого:

<FilesMatch "\.(js)$">
...
</FilesMatch>

никто не говорит, что вы должны иметь mod_headers включен, так что если все еще не работает, попробуйте это:

(следующие советы работает на Ubuntu, не знаю о других дистрибутивах)

вы можете проверить список загруженных модулей с

apache2ctl -M

для включения mod_headers вы можете использовать

a2enmod headers

конечно, после любых изменений в Apache вы должны перезапустить его:

/etc/init.d/apache2 restart

затем вы можете использовать

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

и если mod_headers не активен, эта строка вообще ничего не будет делать. Вы можете попробовать пропустить предложение if и просто добавить Header set Access-Control-Allow-Origin "*" в вашей конфигурации, то он должен бросить ошибку во время запуска, если mod_headers не активен.

из моего опыта;

если он не работает внутри php этого в .htaccess это сработало для меня

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin http://www.vknyvz.com  
    Header set Access-Control-Allow-Credentials true
</IfModule>
  • учетные данные могут быть истинными или ложными в зависимости от параметров вашего запроса ajax

добавить .htaccess файл со следующими директивами в папку шрифтов, если есть проблемы с доступом к шрифтам. Может быть легко изменен для использования с .css или .js файлы.

<FilesMatch "\.(eot|ttf|otf|woff)">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>

в Zend Framework 2.0 у меня была эта проблема. Можно решить двумя способами .htaccess или PHP заголовок я предпочитаю .htaccess поэтому я изменил .htaccess файл с:

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

до

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]

и он начинает работать

другие ответы не работает для меня, это то, что в конечном итоге делает трюк для apache2:

1) Включить заголовки мод:

sudo a2enmod headers

2) создать /etc/apache2/mods-enabled/headers.conf файл и вставить:

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

3) перезагрузите сервер:

sudo service apache2 restart

кстати: the .конфигурация htaccess должна быть выполнена на сервере, на котором размещен API. Например, вы создаете приложение AngularJS на x.com домен и создать REST API на y.com, вы должны установить Access-Control-Allow-Origin "*" в поле .файл htaccess в корневой папке y.com нет x.com :)

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

также, как упоминал Лукас, убедитесь, что вы включили mod_headers, если вы используете Apache

убедитесь, что у вас нет редиректа происходит. Это может произойти, если вы не включаете конечную косую черту в URL.

смотрите этот ответ для более подробной информации -https://stackoverflow.com/a/27872891/614524

Comments

    Ничего не найдено.