VerifyCsrfToken.php 第 53 行中的 TokenMismatchException:(Firefox 浏览器)在 laravel 5.1 中?
Posted
技术标签:
【中文标题】VerifyCsrfToken.php 第 53 行中的 TokenMismatchException:(Firefox 浏览器)在 laravel 5.1 中?【英文标题】:TokenMismatchException in VerifyCsrfToken.php line 53:(Firefox browser) in laravel 5.1? 【发布时间】:2015-11-07 14:14:17 【问题描述】:我试图找出为什么这个错误,即使它是全新安装的。我在我的项目中遇到了这个错误,所以我用谷歌搜索,没有一个答案对我有用。所以我创建了新项目并复制了所有控制器、视图和几个小时后,model.its 工作正常,再次出现令牌不匹配错误。为什么在 laravel 中会发生这种情况?
我的表格
<form class="form-horizontal action="http://localhost/laravel/public/add-post-new" enctype="multipart/form-data" method="POST" accept-charset="UTF-8" >
<div class="form-group">
<label for="inputEmail" class="control-label col-xs-2">Title</label>
<div class="col-xs-10">
<input type="text" class="form-control" id="post_title" placeholder="Title" name="post_title">
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="control-label col-xs-2">Content</label>
<div class="col-xs-10"><textarea class="form-control" style="resize:none" rows="25" name="post_content"></textarea>
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="control-label col-xs-2">Featured Image</label>
<div class="col-xs-10"><input type="file" class="filestyle" data-buttonText="Find" name="featured_image">
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="control-label col-xs-2">Post Images</label>
<div class="col-xs-10"><input type="file" class="filestyle" name="post_gallery[]" multiple />
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="control-label col-xs-2">Select Category</label>
<div class="col-xs-10" >
<select class="form-control" name="cat_id">
<?php $data=Category::all(); ?>
<option value="0">Default Category</option>
@foreach($data as $value)
<option value="$value->id">$value->cat_name</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="control-label col-xs-2">Publish Post</label>
<div class="col-xs-10">
<label class="radio-inline">
<input type="radio" name="published" id="inlineRadio1" value="1"> Publish
</label><br>
<label class="radio-inline">
<input type="radio" name="published" id="inlineRadio2" value="2"> UnPublish
</label><br>
<label class="radio-inline">
<input type="radio" name="published" id="inlineRadio2" value="3"> Draft
</label><br><br>
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="control-label col-xs-2">Slider Post</label>
<div class="col-xs-10">
<label class="radio-inline">
<input type="radio" name="slider_post" id="inlineRadio1" value="1"> Slider Post
</label><br>
<label class="radio-inline">
<input type="radio" name="slider_post" id="inlineRadio2" value="2"> Not required
</label><br><br>
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-2 col-xs-10">
<input name="_token" type="hidden" value=" csrf_token() "/>
<button type="submit" class="btn btn-primary">Submit Post</button>
</div>
</div>
在提问之前我已经阅读了很多教程
Laravel 5, Forms, TokenMismatchException in VerifyCsrfToken.php line 46
Laravel 5 Auth Post Submit - TokenMismatchException in VerifyCsrfToken.php line 46
TokenMismatchException in VerifyCsrfToken.php line 53 in Laravel 5.1
TokenMismatchException in VerifyCsrfToken.php line 46
Laravel 5, ajax, 500 Internal Server Error, TokenMismatchException in VerifyCsrfToken.php line 46:
Laravel 5 TokenMismatchException in VerifyCsrfToken.php line 46
Encountering "TokenMismatchException in VerifyCsrfToken.php" error
Laravel TokenMismatchException
http://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken
TokenMismatchException when uploading a Video?
更新:
【问题讨论】:
我认为问题可能出在表单的操作上。尝试将其更改为 url('add-post-new')
或类似的东西,而不是 http://localhost/laravel/public/add-post-new
。
@JohnBupit.i 试过不工作。
您的表单中似乎也没有<input name="_token" ... >
。我确定您阅读的其中一个教程中对此进行了解释。
@JohnBupit.i 也尝试了也无法正常工作的刀片模板令牌
我今天有同样的错误,它在我的开发环境中运行良好,但是当我将它推送到登台服务器时,它会抛出这个错误,我已经从工匠重新生成密钥,并删除了所有文件存储中的会话文件夹没有运气!这让我疯狂。我正在使用 From:: 外观,所以令牌的隐藏输入就在那里。
【参考方案1】:
这可能对某人有所帮助。 检查不是以空行或空格开头的 php 文件! 这给我带来了很多麻烦。包括上面那个!
【讨论】:
谢谢。我遇到了同样的问题,结果是由 routes.php 文件的打开 天啊。我已经在谷歌上搜索了大约 1 个小时,这是错误! routes.php 中的一个愚蠢的小空间。我在这里疯了。非常感谢。【参考方案2】:在打开表单后尝试添加这一行
<input type="hidden" name="_token" value=" csrf_token()"/>
【讨论】:
除了 tokenmismatch 异常,一切正常吗?是否有任何特殊原因您提供这样的表单操作而不是使用 laravel 默认操作规则?如果您只是在表单操作中执行 /add-post-new 怎么办?结果是什么? .working.看起来像个愚蠢的错误,但对我来说花了很长时间。谢谢。有什么理由吗? 好吧,我之前遇到过同样的问题,花了我一周的时间来解决它。当且仅当我的回答对您有帮助时,请通过将其标记为正确来帮助我:) 让我们continue this discussion in chat。【参考方案3】:我突然收到这个异常。
然后重新启动并清理缓存对我有用。
要清除缓存,请使用:php artisan cache:clear
【讨论】:
我只是在努力解决这个问题,这个建议为我解决了这个问题。我花了一个小时才找到这个,所以我非常感谢。【参考方案4】:我遇到了这个痛苦的错误,这就是我修复它的方法:
1. 前往\Http\Controllers\Middleware\VerifyCsrfToken.php
2. 在protected $except
中添加您要排除在此验证之外的路线。示例:
protected $except = [
'user*'
];
如果仍然出现此错误,请在受保护的 $except 下方添加此函数
public function handle($request, Closure $next)
$regex = '#' . implode('|', $this->except) . '#';
if ($this->isReading($request) || $this->tokensMatch($request) || preg_match($regex, $request->path()))
return $this->addCookieToResponse($request, $next($request));
throw new TokenMismatchException;
我想就是这样。我希望能帮助别人。
【讨论】:
这不是修复它的好方法,事实上它根本没有修复。该错误不应该出现,但这只是说“嘿,我们根本不要检查我们的表单”。以上是关于VerifyCsrfToken.php 第 53 行中的 TokenMismatchException:(Firefox 浏览器)在 laravel 5.1 中?的主要内容,如果未能解决你的问题,请参考以下文章
VerifyCsrfToken.php 第 53 行中的 TokenMismatchException:(Firefox 浏览器)在 laravel 5.1 中?
laravel Route post 提交TokenMismatchException in VerifyCsrfToken.php line 53:
Laravel Dingo API 和中间件问题\\VerifyCsrfToken.php
TokenMismatchException 在使用 ajax 在 laravel 上的 VerifyCsrfToken.php 第 67 行
VerifyCsrfToken.php 第 67 行中的 TokenMismatchException:同时将 paytm 与 laravel 5.3 集成