In HTTP 1.1, esiste effettivamente un codice di stato ( 307 ) che indica che la richiesta deve essere ripetuta utilizzando lo stesso metodo e post dati .
Come altri hanno già detto, esiste un potenziale uso improprio qui che può essere il motivo per cui molti framework si attengono a 301 e 302 nelle loro astrazioni. Tuttavia, con una comprensione adeguata e un uso responsabile, dovresti essere in grado di realizzare ciò che stai cercando.
Si noti che in base alle specifiche di W3.org , quando non lo METHOD
è HEAD
o GET
, gli user agent dovrebbero richiedere all'utente prima di rieseguire la richiesta nella nuova posizione. Dovresti anche fornire una nota e un meccanismo di fallback per l'utente nel caso in cui i vecchi user agent non siano sicuri di cosa fare con un 307.
Utilizzando questo modulo:
<form action="Test307.aspx" method="post">
<input type="hidden" name="test" value="the test" />
<input type="submit" value="test" />
</form>
E avere Test307.aspx restituisce semplicemente 307 con la posizione: http://google.com , Chrome 13 e Fiddler confermano che "test = il test" è effettivamente pubblicato su Google. Naturalmente l'ulteriore risposta è un 405 poiché Google non consente il POST, ma mostra la meccanica.
Per ulteriori informazioni, consultare Elenco dei codici di stato HTTP e le specifiche di W3.org .
307 Reindirizzamento temporaneo (da HTTP / 1.1) In questa occasione, la richiesta deve essere ripetuta con un altro URI, ma le richieste future possono comunque utilizzare l'URI originale. 2 Contrariamente a 303, il metodo di richiesta non deve essere modificato durante la riemissione della richiesta originale. Ad esempio, una richiesta POST deve essere ripetuta utilizzando un'altra richiesta POST.