다른 사이트에 외부 적으로로드되는 스크립트를 작성 중입니다. 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 *
그러나 여전히 작동하지 않습니다.
답변
외부 루트 폴더의 .htaccess에서 이것을 시도하십시오 :
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
그리고 .js 스크립트에만 관련된 경우 위 코드를 다음과 같이 묶어야합니다.
<FilesMatch "\.(js)$">
...
</FilesMatch>
답변
아무도 mod_headers를 활성화 해야한다고 말하지 않으므로 여전히 작동하지 않으면 다음을 시도하십시오.
(다음 팁은 우분투에서 작동하며 다른 배포판에 대해서는 모른다)
당신은로드 모듈의 목록을 확인할 수 있습니다
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 요청 매개 변수에 따라 true 또는 false가 될 수 있습니다
답변
.htaccess
글꼴에 액세스하는 데 문제가있는 경우 다음 지시문이 있는 파일을 글꼴 폴더에 추가하십시오 . .css 또는 .js 파일 과 함께 사용하도록 쉽게 수정할 수 있습니다 .
<FilesMatch "\.(eot|ttf|otf|woff)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
답변
다른 답변은 저에게 효과가 없었습니다.
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
답변
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]
그리고 그것은 작동하기 시작합니다
답변
BTW : .htaccess 구성은 API를 호스팅하는 서버에서 수행해야합니다. 예를 들어 x.com 도메인에서 AngularJS 앱을 만들고 y.com에서 Rest API를 만들려면 x가 아닌 y.com의 루트 폴더에있는 .htaccess 파일에서 Access-Control-Allow-Origin “*”을 설정해야합니다. .com 🙂
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
또한 Lukas가 언급했듯이 Apache를 사용하는 경우 mod_headers를 활성화했는지 확인하십시오