Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

The page has expired due to inactivity. Com metodo POST

Olá pessoal, ao efetuar um POST ocorre esse erro "The page has expired due to inactivity."

Com o metodo GET ocorre tudo certo.

O que poderia ser?

Em uma rápida pesquisa na internet achei que pode ser algo relacionado a tag ou a ausência dela.

Porem estou usando ela no formulário.

9 respostas

Você inseriu o Token no formulário?

Sim.

<!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

Olha, eu fazia desta maneira quando executava alguma requisição http.

<meta name="csrf-token" content="{{ csrf_token() }}">

Tente fazer assim:

<form method="POST" action="/profile">
    {{ csrf_field() }}
    ...
</form>

Fiz essa alteração e ocorre este erro.

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException No message

Parece que o POST está vazio.

Minha rota:

Route::post('/suprimentos/salvar/', 'SuprimentoController@salvar');

Deixei o controller somente fazendo um redirect para uma página. O problema está antes.

O form possui:

<form action="/suprimentos/salvar/" method="POST">
                           <input type="hidden" name="_token" value="{{ csrf_token() }}">

MethodNotAllowedHttpException - Essa Exception geralmente é lançada quando está usando o verbo http de forma incorreta.

Isso acontece ao fazer o submit ou quando acessa sua rota GET?

Ao dar o submit, se eu colocar assim:

Route::get('/suprimentos/salvar/', 'SuprimentoController@salvar');

e

<form action="/suprimentos/salvar/" method="get">

Funciona normalmente. Se eu colocar por POST ocorre o erro.

Use Route::get quando você for carregar uma página, enviar JSON, etc.

Use Route::post para receber os valores de algum formulário.

Neste momento, você precisa criar duas rotas:

  • GET - Para carregar seu template .blade

  • POST - Receber os dados da sua rota GET

solução!

Mathews Lima, obrigado pela ajuda, resolvi assim:

Tirei a ultima barra de ambos.

<form action="/suprimentos/salvar/" method="post">
Route::post('/suprimentos/salvar/', 'SuprimentoController@salvar');

Vitor, recomendo que estude sobre os protocolos HTTP.

Você também pode fazer:

-Irá carregar o template desejado

Route::get('/suprimentos', 'SuprimentoController@index');

-Irá receber os dados e fazer o insert

Route::post('/suprimentos, 'SuprimentoController@create');

Acredito que esta maneira seja melhor que /suprimentos/salvar/