在 Laravel 发布请求-错误-419对不起,您的会话/419您的页面已过期

我安装了 Laravel 5.7

向文件 \resources\views\welcome.blade.php添加了一个表单

<form method="POST" action="/foo" >
@csrf
<input type="text" name="name"/><br/>
<input type="submit" value="Add"/>
</form>

添加到文件 \routes\web.php

Route::post('/foo', function () {
echo 1;
return;
});

在发送一个 POST 请求后:

419对不起,您的会话已过期。请刷新并重试。

5.6版本中没有这样的问题。

402489 次浏览

这是因为表单需要一个 csrf

<form action="" method="post">
@csrf
...

参考文献: Https://laravel.com/docs/5.7/csrf

我也有同样的问题,都是因为我太蠢了。在提交表单之前,我已经通过 javascript 禁用了所有的表单字段(而不仅仅是提交按钮) !当然,这会导致所有表单元素都没有提交(包括隐藏的 _token字段) ,从而导致419错误!

我希望这能帮助某人摆脱几个小时的挠头!

禁用的表单输入不会出现在请求中

吸毒怎么样

\{\{ csrf_field() }}而不是 @csrf

419错误主要是由于 csrf 令牌问题。

在你的 Http/Kernel.php

试着评论这句话:

\Illuminate\Session\Middleware\AuthenticateSession::class,

在您的 Web 中间件数组中

这可能是你问题的根源

这可能有点过了,但你可以试试这个:

//表单调用 名字路由并添加隐藏令牌字段。

<form method="POST" action="\{\{ route('foo') }}" >
@csrf
<input type="hidden" name="_token" value="{!! csrf_token() !!}">
<input type="text" name="name"/><br/>
<input type="submit" value="Add"/>
</form>

//名字路线

Route::post('/foo', function () {
return 'bar';
})->name('foo');

//在 <head></head>块中添加:

<meta name="_token" content="{!! csrf_token() !!}" />

我在本地使用 Laravel 5.7上的 Homestead 进行了测试,这是使用 Laravel Installer 2.0.1进行的新安装,并且运行良好。你的环境是什么?

理论: 我想知道这是否与在您的环境中使用 \{\{ }}{!! !!}的刀片渲染 html 标记有关,或者您是如何为它提供服务的(例如。php artisan serve).什么使我认为是 /vendor/laravel/framework/src/illuminate/Foundation/helpers.phpline 335应该呈现相同的行手动输出以上。

我也遇到过类似的问题,我发现会话文件被锁定用于写入。所以,我不知道你是否通过流浪汉或 Docker 这样的东西运行 Laravel,但我建议你尝试改变会话目录(当然还有文件)的权限(当你在 VM 中运行 Laravel 时,你应该在本地和 VM 中改变权限(比如,当你通过 NFS 共享文件时)

像这样:

chmod -R 777 storage/framework/sessions
chmod -R 777 storage/logs

我知道,777的许可是你能想象到的最糟糕的灾难。但是它们对于故障排除很方便。

为了确保我永远不会忘记这一点,我做了一个 bash 脚本。(称之为 lalog,只是因为我想清除日志文件并设置权限)

注意: 请确保在会话目录中使用此选项。在 config/session.php 中,有一个用位置声明的 files键。就我而言:

<?php
//...........
'files' => storage_path('framework/sessions'),
//...........

Location:/usr/bin/lalog (这是一个文件,不是一个目录)
作为 lalog在 shell 中执行

#!/bin/bash
rm -rf /home/username/Projects/x/storage/logs/laravel.log
echo "Laravel log removed"
touch /home/username/Projects/x/storage/logs/laravel.log
echo "Laravel log created"
chmod -R 777 /home/username/Projects/x/storage/
echo "CHMOD 777 on Storage dir"

警告! 这将允许每个人都有写权限,所以要小心使用它! 另外,也许在 Laravel 的日志文件中有一些有用的信息。(一定要在运行 bash 脚本之前查看该日志文件)

另外,我知道这已经提到了。但是,要完全确定,你总是

  1. 允许在浏览器中使用 Cookie,以便可以在 Cookie 中设置令牌
  2. 检查是否在刀片文件中使用 @csrf

表单应该是这样的

<form method="POST" action="\{\{ route('login') }}">
@csrf
.......
</form>

你不能在 Laravel 5.6或更高版本上做空返回。Laravel 总是期望返回一个值。(我从过去的经验中知道)。 这主要与 PHP7处理空回报的方式有关。

代码中没有问题。我已经检查了与您在新安装中编写的代码相同的代码。

表格编号:

<form method="POST" action="/foo" >
@csrf
<input type="text" name="name"/><br/>
<input type="submit" value="Add"/>
</form>

web.php文件代码:

Route::get('/', function () {
return view('welcome');
});


Route::post('/foo', function () {
echo 1;
return;
});

递交表格后,结果如下: Output after submitting the form

如果您清除您的浏览器缓存或尝试与其他浏览器,我认为它会修复。

一个快速的坏方法是,转到应用程序 http 中间件 verifycsrftoken.php,并在 $but 列表中添加路由。对于 CSRF 令牌验证,发布请求将被忽略。

protected $except = [
//
'doLogin.aspx',
'create_coupon',
];

实际上,CSRF 是基于会话的令牌。 在路由组中添加路由,并添加控制会话的中间件。

Web 是 Laravel 中默认的中间件,它可以控制会话请求。

Route::group(array('middleware' => ['web']), function () {
Route::post('/foo', function () {
echo 1;
return;
});
});

在阅读以下内容之前,请确保你的表格中有 @csrf\{\{ csrf_field() }} 喜欢

<form method="post">
@csrf <!-- \{\{ csrf_field() }} -->
... rest of form ...
</form>

会话过期或419页过期错误消息在 Laravel 出现,因为你的 csrf 令牌验证失败,这意味着 App\Http\Middleware\VerifyCsrfToken::class中间件已经打开。在表单中,已经添加了 @csrf刀片指令,这也应该没问题。

另一个需要检查的区域是会话。csrf令牌验证与您的会话直接相关,因此您可能需要检查会话驱动程序是否正常工作,例如配置不正确的 Redis 可能会导致问题。

也许您可以尝试切换您的会话驱动程序/软件从您的 .env文件,支持的驱动程序给出如下

Laravel 5,Laravel 6和 Laravel 7中支持的会话驱动程序

  • file会话存储在存储/框架/会话中。
  • cookie会话存储在安全的、加密的 cookie 中。
  • 会话存储在一个关系数据库中。
  • memcached/redis-会话存储在这些快速的、基于缓存的存储中。
  • array会话存储在 PHP 数组中,不会被持久化。

如果窗体在切换会话驱动程序后工作,那么该特定驱动程序有问题,请尝试从那里修复错误。

可能出现的容易出错的情况

  • 基于文件的会话可能无法工作,因为 /storage目录存在权限问题(快速搜索就可以找到解决方案) ,还要记住,放置777从来不是解决方案。

  • 在数据库驱动程序的情况下,您的 DB 连接可能是错误的,或者 sessions表可能不存在或配置错误(根据@Junaid Qadir 的评论,错误的配置部分被确认为一个问题)。

  • redis/memcached配置错误,或者同时被系统中的其他代码片段操纵。

执行 php artisan key:generate并生成一个新的应用程序密钥可能是一个好主意,这个新的应用程序密钥将反过来刷新会话数据。

清除浏览器缓存 很难,我发现 Chrome 和 Firefox 是一个罪魁祸首比我记得更多。

阅读更多关于应用程序键为什么重要的信息

在默认情况下我没有这个问题,所以我做的是 chmod -R 644 sessions 来复制这个问题。

enter image description here

然后,我通过 chmod -R 755 sessions授予会话文件夹权限

现在我的项目代码又可以工作了。

enter image description here

发生这种情况的原因是您在文件中存储缓存时缺乏写入 权限。

会话配置文件存储在 config/session.php. Be 中 确保查看此文件中可用的选项。默认情况下, Laravel 被配置为使用文件会话驱动程序,这将工作 适用于许多应用程序。在生产应用程序中,您可以 考虑使用 memcached 或 redis 驱动程序以获得更快的会话 表演。

解决方案:

正如我已经修复以上,你可以给予755会话文件夹的权限。 2-您可以使用另一个会话驱动程序配置。

文件会话存储在存储/框架/会话中 会话存储在安全的、加密的 Cookie 中 存储在一个关系数据库中,memcached/redis-session 是 存储在这些快速的、基于缓存的存储之一 存储在 PHP 数组中,不会被持久化。

请记住: 如果您想使用 memcached/redis,那么您需要在服务器上安装它们,或者您的 docker redis 容器必须正在运行。

我也遇到过类似的问题,我找到了解决办法

如果您是回声或打印的东西从控制器,而返回到查看这个问题将弹出。

因此,请确保在控制器返回时不使用 echo 或 print

尝试在 \app\Http\Kernel.php中注释掉 \App\Http\Middleware\EncryptCookies::class 我有类似的问题,并解决了这样做。 可能不是最好的解决方案,因为安全,但至少它工作。

前情提要:

  • 清空缓存
  • 生成新的应用程序密钥
  • 在不同的浏览器中运行我的应用程序(Chrome 70、 Mozilla Firefox 57和 IE 11)
  • 在另一台电脑上运行我的应用程序
  • \app\Http\Kernel.php中注释 \App\Http\Middleware\VerifyCsrfToken::class
  • \app\Http\Kernel.php中注释 \Illuminate\Session\Middleware\AuthenticateSession::class
  • 升级和降级 Laravel (介于5.6和5.7之间)

但是以上这些对我都不管用。

剪辑

我的情况是,每次我登录,一个新的会话文件将被创建(旧的仍然存在,但突然忘记。检查 storage/framework/sessions)并生成新的 CSRF 令牌。所以问题不在于 VerifyCsrfToken。

正如@Vladd 在注释部分提到的,您应该将 永远不会注释掉 \App\Http\Middleware\VerifyCsrfToken::class。您必须检查是否向服务器发送了正确的 CSRF TOKEN。

说实话,我也有同样的问题。在我当地的家园,它将工作如期望,但推到开发服务器后,我得到了会话超时消息以及。考虑到这是一个环境问题,我从 apache 更改为 nginx,这奇迹般地消除了这个问题。

我用的是 Laravel 5.7 我也有同样的问题,因为 csrf 令牌不在表单中,所以添加

@csrf

解决了问题

情况1: 如果在本地系统中运行项目,如 127.001:8000,

那么

在.env 文件中添加 SESSION_DOMAIN=

或者在 config/session.php 'domain' => env('SESSION_DOMAIN', ''),

然后运行 php artisan cache:clear

情况2: 如果项目在服务器上运行,并且您有类似 “ mydomain.com”

在.env 文件中添加 SESSION_DOMAIN=mydomain.com

或者在 config/session.php 'domain' => env('SESSION_DOMAIN', 'mydomain.com'),

然后运行 php artisan cache:clear

将你的 @csrf改为欢迎. blade.php 为 <input type="hidden" name="_token" value="\{\{ csrf_token() }}">

所以你的代码是这样的:

<form method="POST" action="/foo" >
<input type="hidden" name="_token" value="\{\{ csrf_token() }}">
<input type="text" name="name"/><br/>
<input type="submit" value="Add"/>


<button type="submit">Submit</button>
</form>

我很久以前就有这个问题了。我记得它会导致 storage/framework/sessions的许可。您可能希望通过 chmod -R 0777 storage/framework/sessions命令更改它。这招对我很管用。

改变 。 env

SESSION_DRIVER=cookie

经过这么长时间,我用这种方法解决了

我的 laravel 安装路径与配置文件 session.php 中设置的路径不同

'domain' => env('SESSION_DOMAIN', 'example.com'),

对我来说,这太荒谬了。当我把 Auth::routes()放在路由文件的顶部时,我得到错误419。

Auth::routes();


Route::middleware('auth')->group(function () {
Route::get('/', 'DashboardController@index')->name('dashboard');
});

我修正了这个错误,将 Auth::routes();移动到路由文件的底部。

Route::middleware('auth')->group(function () {
Route::get('/', 'DashboardController@index')->name('dashboard');
});


Auth::routes();

也许对你的案子也有帮助,祝你好运。

请注意,如果您试图上传超过文章文件大小限制的大文件,您会得到错误419。 在这种情况下,你可以同时增加上传 _ max _ filesize 和 post _ max _ size 到一个合理的数量(例如10M 或20M 取决于你的用例和资源) ,点击这里: Https://stackoverflow.com/a/2184541/2100489

但这可能会导致资源消耗问题,例如带宽和存储。作为解决方案,您可以在提交表单之前检查文件大小并显示警告消息。

419 | page 这个错误意味着幼虫安全问题,这意味着 Csrf 标记字段没有被正确使用。

使用 \{\{csrf_field}} 你的问题就解决了。

添加 csrf 令牌,您的问题将得到解决。 { csrf _ token }} 或者 @ csrf

可能会影响你的治疗。在使用了这些设置之后,我解决了我的问题。对我来说,这是最后的选择。

  • 如果您使用“文件”作为会话驱动程序,请查看 存储/框架/会话,如果会话是在 如果没有,很可能是由于不正确的文件夹 检查您的存储/文件夹是否具有正确的权限
  • 尝试禁用页面中的所有 Javascript (通过禁用 它通过导航器或内部的代码) ,并确保’http _ only’ = >
  • 尝试使用 https 和不使用 https
  • 确保 SESSION _ DRIVER 变量不为空
  • 尝试在‘ crypt’= > false 和‘ crypt’= > true 之间切换,
  • 尝试更改 cookie 名称‘ cookie’= > ‘ laravelsession’,
  • 尝试将 SESSION _ DOMAIN 设置为实际域或 null
  • 尝试在‘ security’= > env (‘ SESSION _ SECURE _ COOKIE’, 和‘ security’= > env (‘ SESSION _ SECURE _ COOKIE’,true) ,

资料来源: LaravelSession 总是更改 Laravel5.4中的每个刷新/请求

我只想说,确保生成了 csrf 令牌,有时候它只是一个空数组,比如在中继器中,如果没有在 js 查询中生成。

如果您已经有了 CSRF指令,那么可能已经更改了会话的运行方式。

config/session.php中,检查 “安全”字段。如果您的服务器上没有 https,那么它应该是 false。

还可以将 SESSION_SECURE_COOKIE=FALSE放在 .env文件(根目录)上。

我在开发环境中遇到了同样的问题,它是用 http://127.0.0.1:8000而不是 http://localhost:8000解决的。

在我的情况下,删除 bootstrap/cache修复了问题

对我来说,一旦会话无效,用户尝试提交帖子请求时,就会出现错误。Csrf _ token 不再有效。因此,我通过更改 Exceptions 目录中的 Handler.php 来克服这个问题,并尝试像下面这样捕获令牌不匹配异常。

渲染函数是这样的

public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}

然后我把它修改成这个样子

public function render($request, Exception $exception)
{


if ($exception instanceof \Illuminate\Session\TokenMismatchException){ // <<<=========== the Code
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}


return redirect('/home')->with('message', 'You page session expired. Please try again');
}
return parent::render($request, $exception);
}

您只需选择能够处理令牌刷新操作的路由。

要解决此错误,首先需要在表单标记中插入以下命令之一。

@csrf\{\{ csrf_field }}

如果您的问题没有得到解决,请执行以下操作: (注意,上述命令之一必须在 form 标记中)

1. 在表单标记中插入下列命令之一 @csrf\{\{ csrf_field }}

2. 打开. env 文件并将值更改为 SESSION _ DRIVER 部分中的“ file”。

3. 然后重新设置幼虫缓存。在终端中键入以下命令

php artisan view:clear php artisan route:clear php artisan cache:clear

php artisan config:cache

最后一步,将项目从服务器中拔出,再次单击 php Artisan 服务器

我希望你的问题解决了

.blade.php文件 \{\{ csrf_field() }}@csrf上添加表单,如下所示

<form method='POST' action='route("exampleRoute")'>
\{\{ csrf_field() }} or @csrf
....
....
</form>

在项目中打开命令行 cmd。

1. 命令

php artisan config:cache

2. 命令

php artisan route:clear

您的应用程序的头部也有 csrf 吗?

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

App/Exception/Handler.php 中的一些代码行解决了我的问题。

public function render($request, Exception $exception)
{
if ($exception instanceof Illuminate\Session\TokenMismatchException) {
Artisan::call('cache:clear');
Artisan::call('config:cache');
return Redirect::back();
}
return parent::render($request, $exception);
}

在我的情况下,另一个管理员用户登录我的管理面板,不能登录新的 laravel/ui auth 和419解雇。

解决方案 :

使用匿名标签打开一个新的标签,然后再次测试。

如果你尝试所有这些步骤,它应该会起作用:

  1. 确保您的会话配置良好,最简单的方法是使它的文件,并确保存储文件夹有 chmod 755权限,然后在您的 .env您设置如下,文件会话驱动程序是最简单的方法设置。

    SESSION_DRIVER=file
    SESSION_DOMAIN=
    SESSION_SECURE_COOKIE=false
    
  2. 确保 Cache 文件夹是清除的并且是可写的,您可以通过运行 Artisan 命令来做到这一点。

    php artisan cache:clear
    
  3. 确保文件夹权限设置良好,应按以下方式配置:

    sudo chmod -R 755 storage
    sudo chmod -R 755 vendor
    sudo chmod -R 644 bootstrap/cache
    
  4. 确保表单包含 @csrf令牌。

希望这能解决你的问题。

虽然表单有 @csrf,但它仍然显示 419 pages has expired

我在 config/session.php 中将 SESSION_SECURE_COOKIE选项更新为 false 后解决了这个问题

'secure' => env('SESSION_SECURE_COOKIE', false)

而不是清除缓存

转到 config/sessions.php

找到那一排

'secure' => env('SESSION_SECURE_COOKIE', true),

改成假的

'secure' => env('SESSION_SECURE_COOKIE', false),

如果此参数设置为 TRUE,浏览器将要求您使用 HTTPS 协议,否则它将不会存储会话。因为它是无效的

我试了这里提供的所有答案。然而,他们没有一个为我工作在共享托管。但是,这里提到的解决方案为我工作 如何解决 Laravel 的“ CSRF 令牌不匹配”问题 l

我只是在这里徘徊寻找答案。 在我的情况下,解决方案是清除浏览器历史记录。

在我的例子中,在路由/web.php 的末尾缺少一个 ?>

在我的例子中,在打开嵌入在模态视图上的表单之前,我使用 javascript 清除所有输入。愚蠢的是,我没有注意到它擦除了 hidden输入的值,其中包括 csrf令牌。尽管在 name='_token'的输入条件中有一个例外。当然,我的代码是 splitting输入名称,下划线变成数组。
必须对 hidden输入进行异常处理。

如果有@csrf,你添加然后也发生错误,请确保您没有阻止 Cookie..。

单击 Cookies 并允许链接!

2021年,我在应用上述所有解决方案时面临这个错误,我的每条路线都是扔419。我的应用程序在本地主机上运行良好,在服务器上运行419。 然后,我在生产环境中修复 .env文件时得到了解决方案,从. env 获得了 remove sanctum variables,并在 config/session.php 中设置了 'secure' => env('SESSION_SECURE_COOKIE', null)

这个问题我见过几次,通常是在使用 apache时遇到的。

如果在任何执行的文件中,在打开 <?php之前有任何杂散字符或新行,那么在 Cookie 准备和发送之前,这些字符将由 Web 服务器发出。

这阻止 Cookie 被发送到客户端,客户端必须在每个请求上启动一个新的会话。

不幸的是,唯一的解决方案是查看您创建或修改的每个文件(如果使用 Git,也不算太糟) ,并确保 <?php是每个 php 文件中的第一个字符。

您可以忽略视图文件,因为直到发送 Cookie 之后才会使用它们。

最有可能的候选者是控制器、服务提供者和路由文件。

经过多次搜索,我找到了解决方案 给你,

在公用文件夹中的主 Index.php文件中,编辑它,并在最上面写入 Ob _ start ()

Ob _ start () ;

这个问题花了我两天多的时间,解决办法很简单:

转到 public文件夹并将此 ob_start();添加到 index.php的第一行

重要的是: 在那个清晰的现金浏览器之后。

对于云端用户来说,

尝试从应用程序设置中禁用 清漆(缓存层)。

我刚换了浏览器,还挺管用的。 如果您已经添加了 @csrf后,您的形式,它仍然不工作,只是清除缓存的浏览器使用其他浏览器它将工作。

对我来说,它起作用了,希望这有所帮助

对于某些人来说,还要确保刀片服务器文件的名称是 filename.blade.php 而不是 filename.php,这也会导致419。

请在页眉中更新 CSRF

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

以表格更新 CSRF

@CSRF

如果你已经在标题和表格中有 CSRF,那么 转到 Config/session.php并更新

'domain' => env('SESSION_DOMAIN', 'example.com'),[ Only Domain name without https ]

在我的例子中,我是在使用 jnoordsij 的一个名为 Barryvddh/laravel-debug的调试工具时解决我的问题的

下面是我推荐的调试工具的链接

安装方法

使用编写器需要此包。建议只需要此包进行开发。

composer require barryvdh/laravel-debugbar --dev

Laravel 使用 Package Auto-Discovery,因此不需要手动添加 ServiceProvider。

当 APP _ DEBUG 为 true 时,将启用 Debugbar。

如果使用全部捕获/回退路由,请确保在加载应用程序服务提供程序之前先加载 Debugbar ServiceProvider。

没有自动发现功能的 Laravel: 如果不使用自动发现功能,请将 ServiceProvider 添加到 < strong > config/app.php 中的 Provider 数组

Barryvdh\Debugbar\ServiceProvider::class,

如果希望使用 facade 记录消息,请在 app.php 中将其添加到 facade:

'Debugbar' => Barryvdh\Debugbar\Facades\Debugbar::class,

如果 APP _ DEBUG = true,则默认情况下启用探查器。您可以在配置(DEBUGBAR.enable)中重写它,也可以通过在。Env.查看 config/debugbar.php 中的更多选项如果您想包含/排除供应商文件,也可以在您的配置中进行设置(FontAwesome、 Highlight.js 和 jQuery)。如果您已经在站点中使用了它们,请将其设置为 false。您也只能通过将其设置为“ js”或“ css”来显示 js 或 css 供应商。(Highlight.js 同时需要 css + js,因此对于语法突显设置为 true)

使用发布命令将包配置复制到本地配置:

php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

在使用调试工具栏时,我看到 Laravel 最初是 selects * from sessions, 使用包含 绳子的列名 id,我将数据类型从 Int替换为 < strong > string

然后我查找具有会话表文件的迁移文件

我删除了重复的 迁移文件会话表文件

database/migrations/202_08_02_063945_create_sessions_table.php

我替换了会话表中的列

public function up()
{
Schema::create('sessions', function (Blueprint $table) {
$table->increments('id');
$table->foreignId('user_id')->nullable()->index();
$table->string('ip_address', 45)->nullable();
$table->text('user_agent')->nullable();
$table->longText('payload');
$table->integer('last_activity')->index();
});
}

public function up()
{
Schema::create('sessions', function (Blueprint $table) {
$table->string('id')->primary();
$table->foreignId('user_id')->nullable()->index();
$table->string('ip_address', 45)->nullable();
$table->text('user_agent')->nullable();
$table->longText('payload');
$table->integer('last_activity')->index();
});
}

然后只迁移会话表

就我而言:

php artisan migrate:refresh --path=/database/migrations/202_08_02_063945_create_sessions_table.php

那就发球

php artisan serve

我希望这解决了 错误419登记及登入问题,包括页面会话过期错误

所有解决问题的学分都属于 Jnoordsij制作的调试工具

1-在 < ? php ob_start()之后转到 Public 文件夹 open index.php

这个函数将获取输出缓冲区的内容,并返回一个要发送到浏览器进行呈现的字符串,并删除在启动 PHP 之前放置的空格或换行符。

2-php artisan cache:clear

关于那些使用外部 js 文件的用户,我们没有多少讨论: 我有一个类似的问题。我有一切工作在我的刀片文件。但当我转移了我的所有 Js 代码到外部文件,它停止工作。

首先确保你的应用程序头中有这个

I have a default header for that at app.blade.php

其次,在你的形式,你应该有这样的东西

<form  action="" >
\{\{ csrf_field() }}
........ </form>

第三,在你的外部 js 文件检查这个家伙后 https://stackoverflow.com/a/66120965/6511220。我将代码放在 js 文件的顶部 并直接使用“ crsf”变量作为标记,即:

token=csrf;
$.ajax({
url: 'yoururl', //change all these to suit your need.
type: 'POST',
data:
_token: token,
any_other_variables:here });   //etc..