错误419页已过期。Laravel Yajra数据表

错误419页已过期。Laravel Yajra数据表,laravel,datatables,yajra-datatable,laravel-datatables,Laravel,Datatables,Yajra Datatable,Laravel Datatables,我试图添加一个表单按钮来删除一条记录,但由于某些原因,csrf令牌没有插入它。我试过很多方法,但都没能成功。有什么建议吗 <div class="row"> <a href="{{ route('publicaciones.show', $id)}}" class="btn btn-success btn-sm h-25 d-inline-block mr-3">Ver</a> <

我试图添加一个表单按钮来删除一条记录,但由于某些原因,csrf令牌没有插入它。我试过很多方法,但都没能成功。有什么建议吗

<div class="row">
    <a href="{{ route('publicaciones.show', $id)}}" class="btn btn-success btn-sm h-25 d-inline-block mr-3">Ver</a>
    <a href="{{ route('publicaciones.show', $id)}}" class="btn btn-primary btn-sm h-25 d-inline-block">Editar</a>

    <form method="POST" action="{{ url("publicaciones/{$id}") }}" class="col">
         @csrf

        @method('DELETE')
        <button class="btn btn-danger btn-sm" type="submit" id="eliminar">Eliminar</button>

    </form>
</div>

@csrf
@方法('DELETE')
Eliminar
附图:

通常您的路线不使用web中间件。确保对路由使用
routes/web.php
,并确保
RouteServiceProvider
具有
route::middleware('web')
示例:

/**
 * Define the "web" routes for the application.
 *
 * These routes all receive session state, CSRF protection, etc.
 *
 * @return void
 */
protected function mapWebRoutes()
{
    Route::middleware('web')->namespace($this->namespace)->group(base_path('routes/web.php'));
}
或者,您可以手动添加到每个路线使用,如下面所示:

Route::group(['middleware' => ['web']], function () {

    // your routes here

});

正如对
RouteServiceProvider
web中间件将使您的路由接收会话状态、CSRF保护等的评论一样。

Laravel 7.0版是刀片代码尝试一下这一次
{{CSRF_field()}
我已经尝试过了,它做了完全相同的事情,我认为问题不在于此,因为任何其他视图中的CSRF都会添加它,并且它们具有相同类型的路由。我认为问题的出现是因为这个数据表使用ajax,出于某种原因,我不知道,它没有插入CSRF。您如何调用ajax路由,它在哪里?对不起。你说得对。datatable是通过API路由加载的。多亏了你的信息,我已经解决了。谢谢!