Estoy intentando fijar el apoyo CORS en griales, y estoy usando el siguiente filtro:CORS in grails: ¿fallan todas las solicitudes?
class CorsFilters {
def filters = {
all(controller:'*', action:'*') {
before = {
response.setHeader("Access-Control-Allow-Origin", "*")
}
}
}
}
De las pruebas, parece que la cabecera de respuesta está configurado correctamente para todas las solicitudes, pero cuando hago una solicitud externamente contra localhost o algún servidor disponible para mí, me sale el siguiente error:
XMLHttpRequest cannot load http://server:8080. Origin http://jsbin.com is not allowed by Access-Control-Allow-Origin.
This live example trabajos en mi instancia de Chrome, así que no sé lo que podría estar sucediendo aquí. En las solicitudes que fallan, trato de atacar a tomcat directamente.
¿Qué podría estar pasando para que esto falle?
Dos cosas vienen a la mente. 1. Usar localhost (un dominio de primer nivel) no es una buena idea; No puedo encontrar la fuente en este momento, pero tuve problemas no hace mucho con esto. Usa tu archivo de hosts para configurar un host falso. 2. ¿El código en JSBin es realmente lo que estás usando para la solicitud? De lo contrario, algunas bibliotecas/frameworks JS pueden enviar primero una solicitud OPTIONS (pre-flighted), que debe responder de manera adecuada. Confirme si este es el caso y puedo dar una respuesta. Ya he desarrollado una solución en Grails. ¡Buena suerte! – Esteban