Recientemente se trasladó a la primavera 3,0 manejar como este controlador:Spring 3.0 CABEZA Pide
@Controller
public class MyController {
@RequestMapping(method = RequestMethod.POST)
protected String onSubmit (Form form, Errors errors) {
// handle POST
}
@RequestMapping(method = RequestMethod.GET)
protected void getForm (Form form) {
// handle GET
}
}
Ahora estamos recibiendo un montón de excepciones en nuestros registros a causa de peticiones HEAD.
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'HEAD' not supported
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodResolver.resolveHandlerMethod(AnnotationMethodHandlerAdapter.java:621)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:422)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:415)
...
me gustaría apoyar las solicitudes HEAD de la misma manera como las solicitudes GET, pero obedeciendo a la referencia HTTP, por supuesto:
El método HEAD es idéntica a GET excepto que el servidor no debe
devuelve un mensaje-cuerpo en la respuesta. La metainformación contenida en los encabezados HTTP en respuesta a una solicitud HEAD DEBERÍA ser idéntica a la información enviada en respuesta a una solicitud GET . Este método se puede usar para obtener metainformación sobre la entidad implícita en la solicitud sin transferir el cuerpo de entidad . Este método se usa a menudo para probar enlaces de hipertexto para validez, accesibilidad y modificación reciente . http://www.ietf.org/rfc/rfc2616.txt
¿Alguien tiene una solución elegante o hay incluso una solución de primavera fuera de la caja?
Realicé búsquedas en la web pero no encontré ninguna respuesta a esto.
Lo que está haciendo las peticiones HEAD? ¿Podría ser una configuración errónea en el cliente o el código del lado del cliente (Javascript)? Lo estoy preguntando porque generalmente HEAD está destinado a buscar actualizaciones de la página (es decir, encabezados Cache-Control/LastModified) para que el navegador pueda actualizarse. – AngerClown
PycURL hace un método de solicitud = head para hacer gets. Por lo general, he encontrado que esto es muy normal para los motores de búsqueda de lotes como: oneriot.com, ask.com, etc. –
a quién le importa qué herramienta está haciendo HEAD Request. Es una solicitud HTTP válida y muchos navegadores lo están haciendo en realidad (marcando marcadores o lo que sea). – Janning