.htaccess - missing - htaccess Access-Control-Allow-Origin
set access control allow origin htaccess (8)
Agregue un archivo .htaccess
con las siguientes directivas a su carpeta de fuentes, si tiene problemas para acceder a sus fuentes. Se puede modificar fácilmente para usar con archivos .css o .js .
<FilesMatch "/.(eot|ttf|otf|woff)">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
Estoy creando un script que se carga externamente en otros sitios. Carga CSS y HTML y funciona bien en mis propios servidores.
Sin embargo, cuando lo intento en otro sitio web muestra este terrible error:
Access-Control-Allow-Origin
Aquí puedes ver que se carga perfectamente: http://tzook.info/bot/
Pero en este otro sitio web muestra el error: http://cantloseweight.co/robot/
Cargué el script de carga en jsfiddle: http://jsfiddle.net/TL5LK/
Traté de editar el archivo htaccess de esta manera:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin *
</IfModule>
O así:
Header set Access-Control-Allow-Origin *
Pero todavía no funciona.
Asegúrate de no tener un redireccionamiento. Esto puede suceder si no incluye la barra final en la URL.
Vea esta respuesta para más detalles - https://.com/a/27872891/614524
De acuerdo con mi experiencia;
si no funciona desde dentro de php
haz esto en .htaccess
funcionó para mí
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin http://www.vknyvz.com
Header set Access-Control-Allow-Credentials true
</IfModule>
- las credenciales pueden ser verdaderas o falsas dependiendo de los parámetros de solicitud de ajax
En Zend Framework 2.0 tuve este problema. Se puede resolver en dos direcciones .htaccess o php header prefiero .htaccess, así que modifiqué .htaccess de:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
a
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]
y comienza a funcionar
Las otras respuestas no funcionaron para mí, esto es lo que terminó haciendo el truco para apache2:
1) Habilita el mod de encabezados:
sudo a2enmod headers
2) Cree el archivo /etc/apache2/mods-enabled/headers.conf
e inserte:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
3) Reinicia tu servidor:
sudo service apache2 restart
Por cierto: la configuración de .htaccess debe hacerse en el servidor que aloja la API. Por ejemplo, si crea una aplicación AngularJS en el dominio x.com y crea una Rest API en y.com, debe establecer Access-Control-Allow-Origin "*" en el archivo .htaccess en la carpeta raíz de y.com no x .com :)
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
También como mencionó Lukas, asegúrese de haber habilitado mod_headers si usa Apache
Pruebe esto en el .htaccess de la carpeta raíz externa:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
Y si solo se trata de scripts .js, debe ajustar el código anterior dentro de este:
<FilesMatch "/.(js)$">
...
</FilesMatch>
nadie dice que también tiene que tener mod_headers habilitados, por lo que si aún no funciona, intente esto:
(Los siguientes consejos funcionan en Ubuntu, no sé sobre otras distribuciones)
usted puede verificar la lista de módulos cargados con
apache2ctl -M
para habilitar mod_headers puedes usar
a2enmod headers
por supuesto, después de cualquier cambio en Apache debes reiniciarlo:
/etc/init.d/apache2 restart
Entonces puedes usar
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
Y si mod_headers no está activo, esta línea no hará nada en absoluto. Puede probar la cláusula skip if y simplemente agregue el Header set Access-Control-Allow-Origin "*"
en su configuración, entonces debería lanzar un error durante el inicio si mod_headers no está activo.