No HTTP 1.1, existe realmente um código de status ( 307 ) que indica que a solicitação deve ser repetida usando o mesmo método e postar dados .
Como outros já disseram, existe um potencial de uso indevido aqui, e pode ser por isso que muitas estruturas aderem a 301 e 302 em suas abstrações. No entanto, com o entendimento adequado e o uso responsável, você deve conseguir o que está procurando.
Observe que, de acordo com a especificação do W3.org , quando METHOD
não é HEAD
ou GET
, os agentes do usuário devem avisar o usuário antes de executar novamente a solicitação no novo local. Você também deve fornecer uma observação e um mecanismo de fallback para o usuário, caso os agentes antigos não tenham certeza do que fazer com um 307.
Usando este formulário:
<form action="Test307.aspx" method="post">
<input type="hidden" name="test" value="the test" />
<input type="submit" value="test" />
</form>
E com o Test307.aspx, basta retornar 307 com o Local: http://google.com , o Chrome 13 e o Fiddler confirmam que "test = the test" é realmente publicado no Google. É claro que a resposta é 405, já que o Google não permite o POST, mas mostra a mecânica.
Para obter mais informações, consulte Lista de códigos de status HTTP e a especificação W3.org .
Redirecionamento temporário (desde HTTP / 1.1) Nessa ocasião, a solicitação deve ser repetida com outro URI, mas solicitações futuras ainda podem usar o URI original. 2 Ao contrário de 303, o método de solicitação não deve ser alterado ao reemitir a solicitação original. Por exemplo, uma solicitação POST deve ser repetida usando outra solicitação POST.