Estoy diseñando un sitio web (por ejemplo, mywebsite.com) y este sitio carga fuentes tipográficas de otro sitio (por ejemplo, otro sitio.com). Estaba teniendo problemas con la carga de fuentes de tipografía en Firefox y leí en este blog :
Firefox (que admite @ font-face desde v3.5) no permite fuentes entre dominios de forma predeterminada. Esto significa que la fuente debe provenir del mismo dominio (y subdominio) a menos que pueda agregar un encabezado "Access-Control-Allow-Origin" a la fuente.
¿Cómo puedo configurar el encabezado Access-Control-Allow-Origin en la fuente?
Respuestas:
Entonces, lo que debe hacer es ... En la carpeta de archivos de fuentes, coloque un archivo htaccess con lo siguiente.
también en su archivo CSS remoto, la declaración font-face necesita la URL absoluta completa del archivo font (no es necesario en los archivos CSS locales):
p.ej
Eso solucionará el problema. Una cosa a tener en cuenta es que puede especificar exactamente a qué dominios se les debe permitir acceder a su fuente. En el htaccess anterior, he especificado que todos pueden acceder a mi fuente,
"*"
sin embargo, puede limitarlo a:Una única URL:
Conjunto de encabezados Access-Control-Allow-Origin http://example.com
O una lista de URL delimitadas por comasAccess-Control-Allow-Origin: http://site1.com,http://site2.com
(No se admiten varios valores en las implementaciones actuales)
fuente
url('/fonts/League_Gothic.woff') format('woff')
es suficiente asumiendo que mantiene la carpeta 'fuentes' en el mismo directorio que su archivo .css.Según los documentos oficiales , a los navegadores no les gusta cuando usas el
encabezado si también está utilizando el
encabezamiento. En cambio, quieren que permitas su origen específicamente. Si aún desea permitir todos los orígenes, puede hacer algo de magia Apache simple para que funcione (asegúrese de haberlo
mod_headers
habilitado):Los navegadores deben enviar el
Origin
encabezado en todas las solicitudes entre dominios. Los documentos indican específicamente que debe repetir este encabezado en elAccess-Control-Allow-Origin
encabezado si está aceptando / planeando aceptar la solicitud. Eso es loHeader
que está haciendo esta directiva.fuente
?yourdomain
funciona en el último caso, pero devalúa un poco los beneficios de usar una CDN)SetEnvIfNoCase Origin (.+) HTTP_ORIGIN=$1
.Desafortunadamente, la respuesta aceptada no me funciona, ya que los archivos CSS de mi sitio @importan los archivos CSS de fuentes, y todos están almacenados en un CDN de Rackspace Cloud Files.
Dado que los encabezados de Apache nunca se generan (ya que mi CSS no está en Apache), tuve que hacer varias cosas:
Vea si puede salirse con la suya con solo el # 1, ya que el segundo requiere un poco de trabajo en la línea de comandos.
Para agregar el encabezado personalizado en el n. ° 1:
Si necesita continuar y hacer # 2, entonces necesitará una línea de comando con CURL
De los resultados devueltos, extraiga los valores para X-Auth-Token y X-Storage-Url
Por supuesto, este proceso solo funciona si está utilizando Rackspace CDN. Otras CDN pueden ofrecer instalaciones similares para editar encabezados de objetos y cambiar tipos de contenido, por lo que tal vez tenga suerte (y publique información adicional aquí).
fuente
Para la aplicación basada en Java, agregue esto a su archivo web.xml:
fuente
Consulte este enlace .. Definitivamente resolverá su problema .. Hay muchas soluciones para hacer llamadas GET Ajax entre dominios PERO LA SOLICITUD POST PARA EL DOMINIO CRUZADO SE RESUELVE AQUÍ . Me tomó 3 días darme cuenta.
http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/20/implementing-cors-support-in-asp-net-web-apis.aspx
fuente
En su file.php de solicitud ajax, puede establecer el encabezado de valor.
fuente