Laravel4 POST redirecionamento inexplicável para GET

Outra pergunta que eu não dormi o suficiente, tenho certeza. Eu estou postando isso como um sacrifício para o Elder God Murphy: assim que eu exponho minha moronidade para todos verem, eu sougarantido para encontrar por mim mesmo que a resposta que de outra forma vai me iludir por horas (por meio de penitência adicional, postarei a resposta também).

Eu tenho um formulário HTML que é processado como

<form method="post" id="mysearch" action="/search/?uid=1701">
    <input id="searchterm" type="text" name="query" />
</form>

A formaposso ser enviado via jQuery$.POST com url de '/ search' e dados de{ uid: '1701', query: $('#searchterm').val() } e funciona.

Se eu pressionar ENTER depois de digitar algo e, assim, substituir o envio do jQuery, acontece o seguinte:

um POST é emitido para o servidor, conforme esperado.aRoute::post('/search', function() {... faznão é invocado.um 301 movido permanentemente é retornadoum GETcom parâmetros de pesquisa perdidos é emitido para o URL especificado pelo redirecionamentoObviamente, a busca falha.

A resposta 301 parece com algo do Laravel4, adicionado explicitamente:

HTTP/1.0 301 Moved Permanently
Date: Thu, 28 Nov 2013 14:05:29 GMT
Server: Apache
X-Powered-By: PHP/5.4.20
Cache-Control: no-cache
Location: http://development/search?uid=1701
Connection: close
Content-Type: text/html

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="refresh" content="1;url=http://development/search?uid=1701" />
    <title>Redirecting to http://development/search?uid=1701</title>
</head>
<body>
Redirecting to <a href="Redirecting to http://development/search?uid=1701">Redirecting to http://development/search?uid=1701</a>
</body>
</html>

Isto não é o mesmo queessa questão, porque lá o redirecionamento é esperado e é a resposta paranaquela o que é indesejado. Aqui está o redirecionamento em si que é gerado sem nenhuma razão que eu possa (por enquanto) ver.

Eu suspeito que, por algum motivo eu estou provocando o "redirecionamento de segurança" descrito emesta outra resposta, isso não é acionado pelo jQuery (seja porque ele coloca tudo no POST enquanto aqui eu tenho um parâmetro na URL e outro no POST, ou porque o jQuery usa o XHR).

Eu pensei que poderia ser uma defesa contra CSRF, mas essa rota em particular não é protegida. Como último recurso, eu protegerei CSRF a rota e adicionarei o token ao formulário, mesmo que pareça um pouco com voodoo para mim. Algo vagamente parecido parece estar acontecendo emTrilhos.

Soluções alternativas

Eu não tenho um, não dois, mastrês soluções que claramente contornar a questão daporque é o acontecimento acima:

(mais brutal) bloquear okeyUp evento no formulário.redirecionar oenviar evento do formulário para jQuery(mais transparente) encaminha o evento acima para$('#search-button').click()

... mas eu gostaria de fazer sem o botão completamente (o que eu poderia fazer com jQuery) esem jQuery completamente. Além de entender o que está acontecendo aqui. Tenho 99% de certeza de que estou perdendo algo óbvio.

Depuração

Agora vougrep -r "Redirecting to" * todo o código-fonte do framework (espero encontrar algo emSymfony/Components/HttpFoundation/ResponseRedirect) e fazendo passo a passo a partir daí.

questionAnswers(1)

yourAnswerToTheQuestion