你好。提交表单时,我进入页面
The page has expired due to inactivity.
Please refresh and try again.
如何解决这个问题,以便当我点击提交按钮时,我不会被法庭抛出,而只是刷新页面。
其次,也是最重要的,在表单中提交数据后,我得到一个空数组,为什么?也就是说,按下按钮后,它submit会带我到我上面描述的页面,然后The page has expired due to inactivity.在顶部backspace单击它ctrl + u页面,你可以看到这段代码。
Array
(
)
为什么数组是空的?请告诉我修复它。
这是我的contact.blade.php模板
@extends ("default.layouts.layout")
@section("content")
<div style="display: flex;">
<form method="post" action="{{ route ('contact') }}">
<label for="name">Name</label>
<input name="name" type="text" >
<label for="e-mail">E-mail adress</label>
<input name="e-mail" type="text">
<label for="site">Site</label>
<input name="site" type="text" style="margin-bottom: 10px;" >
<label for="text">Text</label>
<textarea name="text"></textarea>
<button style="background-color:lightslategrey" type="submit">Submit</button>
</form>
</div>
<style>
input {
display: flex;
}
</style>
@endsection
这是 ContactController控制器
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class ContactController extends Controller
{
public function show(Request $request){
print_r($request->all());
return view("default.contact",["title"=>"Contacts"]);
}
}
还有web.php路线
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get("/",["as"=>"home","uses"=>"Admin\IndexController@show"]);
Route::get("/about",["uses"=>"Admin\AboutController@show", "as"=>"about"]);
Route::match(["get","post"],"/contact",["uses"=>"Admin\ContactController@show","as"=>"contact"]);
使用 AJAX 并以 JSON 代码的形式返回数据,然后你可以将这个 JSON 转换为一个数组)但是这里有点不合逻辑,你请求一个数据数组并重新加载页面??你为什么需要它?听起来有点毫无意义。总的来说,我认为你需要 AJAX
解决方案很简单
CSRF 保护
Laravel 可以轻松保护您的应用程序免受跨站点请求伪造 CSRF 攻击。跨站点请求伪造是一种恶意攻击,其中代表授权用户执行未经授权的命令。
Laravel 会为应用程序中的每个活动用户会话自动生成一个CSRF “令牌”。此令牌用于验证授权用户是否正在向应用程序发送请求。
简单来说就是要发送数据让laravel知道我是授权用户,要加一行
在表格和所有之后。