Recentemente abbiamo spostato alla primavera 3.0 controller gestire in questo modo:Primavera 3.0 TESTA Richieste
@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
}
}
Ora stiamo ricevendo un sacco di eccezioni nei nostri ceppi a causa delle richieste 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)
...
vorrei sostenere HEAD Richieste allo stesso modo come richieste GET, ma obbedendo il riferimento HTTP, naturalmente:
Il metodo HEAD è identico a GET tranne che il server non deve
restituisce un messaggio-corpo nella risposta. La metainformation contenuta in le intestazioni HTTP in risposta a una richiesta HEAD DOVREBBE essere identica alle informazioni inviate in risposta a una richiesta GET . Questo metodo può essere utilizzato per ottenere la metainformation su l'entità implicita dalla richiesta senza trasferire il corpo dell'entità stesso. Questo metodo viene spesso utilizzato per il test dei collegamenti ipertestuali per la validità di , l'accessibilità e la recente modifica . http://www.ietf.org/rfc/rfc2616.txt
Qualcuno ha una soluzione elegante o c'è anche una soluzione a molla out-of-the-box?
Ho cercato sul Web ma non ho trovato nessuna risposta a questo.
Cosa sta facendo le richieste HEAD? Potrebbe essere una configurazione errata sul client o sul codice lato client (Javascript)? Mi sto chiedendo perché in genere HEAD ha lo scopo di verificare gli aggiornamenti della pagina (ad esempio intestazioni Cache-Control/LastModified) in modo che il browser possa aggiornarsi. – AngerClown
PycURL esegue un metodo request = head per doing ottiene. Di solito, ho trovato che questo è molto normale per i motori di ricerca come: oneriotrienti, ask.com ecc. –
a chi importa quale strumento stia effettuando la richiesta HEAD. È una richiesta HTTP valida e molti browser lo stanno facendo effettivamente (controllando i segnalibri o qualsiasi altra cosa). – Janning