【问题标题】:The page has expired due to inactivity. Please refresh and try again由于不活动,该页面已过期。请刷新并重试
【发布时间】:2018-03-01 09:08:31
【问题描述】:

当我在 post 请求中向我的控制器发送数据时,我使用的是 laravel 5.5。它总是显示以下消息 由于不活动,该页面已过期。

请刷新并重试。 我的视图代码是:

@extends('layouts.app')
@section('content')


    <!DOCTYPE html>
    <html>
    <head>
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <title></title>
    </head>
    <body>
    <div class="span3 well">
          <legend>Create Your New Task!</legend>
          <div class="form-group">
            <div class="col-md-4">  
             <form accept-charset="UTF-8" action="/add-task" class="form-horizontal" method="post">
            <input class="form-control"   name="name" placeholder="Task Name" type="text"> 
            <input class="form-control"  name="assignedto" placeholder="Assigned To" type="text">
            <input class="form-control"  name="deadline" placeholder="DeadLine" type="text"> 
            <button class="btn btn-warning" type="submit">Add Task</button>
            {{csrf_field()}}
        </form>
        </div>
    </div>
    </div>
    </body>

    </html>

    @endsection()

我的控制器是:

<?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;
    use App\task;

    class AddTask extends Controller
    {
        public function insertTask(Request $req)
        {
            $name=new task();
            $name->name=$req['name'];
            $name->assigned_to=$req['assignedto'];
            $name->deadline=$req['deadline'];

            $name->save();

        }
    }

不知道怎么解决

【问题讨论】:

  • 如果您在几秒钟后使用标头进行自动重载,这会是一个可能的解决方案吗? ` 例如:` 您也可以使用 JS location.reload(); 刷新页面我无法告诉您为什么会收到此错误,但可能是 csrf令牌达到了他的“生命周期”的终点。每个生成的令牌都在短时间内有效。您的 laravel 项目中应该有一个设置,您可以在其中增加 csrf 令牌的默认生命周期。

标签: php laravel-5.5


【解决方案1】:

我在使用 localhost:8000 时遇到了同样的问题 请尝试以下步骤
1.尝试干净的浏览器。似乎问题出在同一个 url 上使用以前的 Laravel 版本开发的 cookie。
2.尝试在打开表单标签下方添加{{ csrf_field() }}

<form action="/add-task" method="POST">
  {{ csrf_field() }}

3.删除@​​987654327@

进一步阅读 Similiar Post 1Similiar Post2
关于 laravel 5.5 错误的附加链接 Larave 5.5: default error views and costomizing them

【讨论】:

    【解决方案2】:

    有同样的问题,但 /storage/framework/sessions 文件夹丢失。 创建文件夹并在刷新后修复它。

    【讨论】:

      【解决方案3】:

      注意php.inimbstring.func_overload参数。

      它必须设置为 0。 并且 mbstring.internal_encoding 设置为 UTF-8。就我而言,这是一个问题。

      【讨论】:

        【解决方案4】:

        不得不放 &lt;input type="hidden" name="_token" value="{{ csrf_token() }}"&gt; 或在 Laravel 5.6 中使用 @csrf 里面的形式。 {{csrf_token()}} 否则会打印在 html 页面中

        【讨论】:

          猜你喜欢
          • 2018-09-16
          • 1970-01-01
          • 1970-01-01
          • 2018-02-19
          • 2018-12-31
          • 2018-05-07
          • 1970-01-01
          • 2018-05-17
          • 1970-01-01
          相关资源
          最近更新 更多