
En el archivo .htaccess de mi servidor web, tengo configurado el siguiente encabezado CORS:
Header set Access-Control-Allow-Origin "example.com"
En uno de mis scripts PHP, al que llamo con frecuencia mientras trabajo desde localhost, tengo este encabezado configurado:
header("Access-Control-Allow-Origin: *");
Esto me ha funcionado hasta ayer, cuando activé FPM para PHP. Ahora me sale el siguiente error:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.example.com/script.php. (Reason: CORS header 'Access-Control-Allow-Origin' does not match '*, example.com').
Solo recibo ese error cuando llamo desde localhost, no cuando llamo desde el sitio web. Me pregunto si hay alguna manera de anular el .htaccess
encabezado CORS a través de PHP ahora que FPM está habilitado.
Respuesta1
Motivo: el encabezado CORS 'Access-Control-Allow-Origin' no coincide con '*, ejemplo.com'
Curioso, eso es como si Header merge
lo hubieran llamado, en lugar de Header set
? Los valores "combinados" como este no son oficialmente compatibles con el Allow-Control-Allow-Origin
encabezado, por lo que la compatibilidad del navegador puede variar y le explicará por qué no funciona para usted.
si hay una manera de anular el
.htaccess
encabezado CORS a través de PHP ahora que FPM está habilitado.
Creo que tendrás que intentar hacerlo de modo que Apache no anule el encabezado establecido por PHP (que se configuró anteriormente), en lugar de que PHP anule Apache. Prueba la setifempty
acción:
Header setifempty Access-Control-Allow-Origin "example.com"
También puedes probar la always
condición, es decir. Header always set ....
- este es un "grupo" diferente de encabezados alpor defecto onsuccess
y debería significar que el encabezado se establece efectivamente dos veces.
Sin embargo, tampoco creo que varios Access-Control-Allow-Origin
encabezados sean estrictamente parte del estándar, por lo que el comportamiento de los navegadores podría variar.
Consulte también la siguiente pregunta relacionada sobre StackOverflow: