origin missing habilitar control chrome allow java jax-rs cors resteasy

missing - cors javascript



¿Cómo se configuran los encabezados CORS en las respuestas de error internas del servidor? (1)

Use un ExceptionMapper :

@Provider public class CorsExceptionMapper implements ExceptionMapper<Exception> { @Override public Response toResponse(Exception ex) { ResponseBuilder responseBuilder = Response.serverError(); responseBuilder.header("Access-Control-Allow-Origin", "*"); responseBuilder.header("Access-Control-Allow-Headers", "origin, content-type, accept, authorization, auth-token"); responseBuilder.header("Access-Control-Allow-Credentials", "true"); responseBuilder.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); responseBuilder.header("Access-Control-Max-Age", "1209600"); return responseBuilder.build(); } }

Para evitar la duplicación de encabezados, debe usar:

cResp.getHeaders().putSingle()

En el ContainerResponseFilter .

Tengo un servidor de aplicaciones Java con una interfaz REST proporcionada por resteasy y tengo el filtro CORS abajo

@Provider public class CORSFilter implements ContainerResponseFilter { public void filter(ContainerRequestContext cReq, ContainerResponseContext cResp) { cResp.getHeaders().add("Access-Control-Allow-Origin", "*"); cResp.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization, auth-token"); cResp.getHeaders().add("Access-Control-Allow-Credentials", "true"); cResp.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); cResp.getHeaders().add("Access-Control-Max-Age", "1209600"); } }

Todas las solicitudes vuelven con los encabezados CORS:

OPTIONS 200 OK Access-Control-Allow-Credentials:"true" Access-Control-Allow-Headers:"origin, content-type, accept, authorization, auth-token" Access-Control-Allow-Methods:"GET, POST, PUT, DELETE, OPTIONS, HEAD" Access-Control-Allow-Origin:"*" Access-Control-Max-Age:"1209600" Allow:"HEAD, GET, OPTIONS" Connection:"keep-alive" Content-Length:"18" Content-Type:"text/plain" Date:"Thu, 15 Jan 2015 15:23:01 GMT" Server:"WildFly/8"

excepto cuando tengo una excepción interna que devuelve el código de error 500:

GET 500 Internal Server Error Connection:"keep-alive" Content-Length:"8228" Content-Type:"text/html; charset=UTF-8" Date:"Thu, 15 Jan 2015 15:23:01 GMT"

¿Cómo puedo hacer que 500 respuestas contengan esos encabezados?