- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我遇到了有史以来最奇怪的错误,不知道从哪里开始调试。我有一个用于向客户发送电子邮件的表格。此表单通过 ajax 提交到服务器并发回响应。
$.post('{{ route('some.route') }}', $('#check-form').serialize(), function (data) {
buildNotification('Success', "Sent email, 'success');
doAction('reset', true);
}).fail(function (err) {
buildNotification('Error!!!', err.message !== undefined ? err.message : "Failed sending email", 'danger');
doAction('reset', true);
});
我还在我的表单中设置了 {{ csrf_field() }}
,如果我在网络选项卡中检查 Chrome 开发工具,我可以看到“_token”字段已设置。
当我提交请求时,服务器的响应是 TokenMismatchException
的 HTML。我禁用了指定路由的 token 验证,但我仍然得到一个 TokenMismatchException
..
在此之后,如果我刷新页面,我将再次重定向到登录页面(我猜 session 会以某种方式被破坏)。我搜索了所有我能找到的东西,但似乎没有任何东西适用于我的情况。
我注意到的另一件事是,我只有在 Chrome(在我的例子中是 Chromium)上运行时才会出现这种行为。还尝试了隐身模式,因为我认为某些扩展可能会导致错误,但没有,仍然是同样的问题。
关于如何解决这个问题有什么想法吗?
最佳答案
这就是 Laravel 使用 Axios 配置任何 ajax 调用的方式。取自 bootstrap.js。
/**
* Register the CSRF Token as a common header with Axios so that
* all outgoing HTTP requests automatically have it attached. This is just
* a simple convenience so we don't have to attach every token manually.
*/
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
但是,当您使用 JQuery 时,您需要确保已配置 ajax 设置,以便它可以按如下方式传递 crsf 字段。
// main.blade.php
<meta name="csrf-token" content="{{ csrf_token() }}" />
// boostrap.js, after you have imported jquery
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
希望这能解决问题。
关于php - Laravel 5.4 TokenMismatchException 和注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48553226/
当上传一张图片时,laravel 会仔细检查所有事情。没有戏剧。一旦我上传视频文件,不。弹出:. TokenMismatchException in VerifyCsrfToken.php line
我正在使用资源组并使用此过滤器来解决 TokenMismatchException 问题: Route::filter('csrf', function($route, $request) {
如果文件符合此验证规则,我可以上传文件 'user_file' => 'file|max:10240|mimes:xls,xlsx,doc,docx,pdf,zip' 一切顺利 我在 php.ini
我在 Laravel 5 中遇到随机 TokenMismatchExceptions。在 tokensMatch() 函数中使用以下代码我一直在尝试调试这个奇怪的问题: Log::debug($req
可以使用 try catch block 捕获 TokenMismatchException 吗?我希望它显示实际页面并仅显示错误消息,而不是显示显示“VerifyCsrfToken.php 第 46
可以使用 try catch block 捕获 TokenMismatchException 吗?我希望它显示实际页面并仅显示错误消息,而不是显示显示“VerifyCsrfToken.php 第 46
当我上传低于 8MB 时,它工作正常。但是当文件超过 8 MB 时会显示此错误 (1/1) TokenMismatchException in VerifyCsrfToken.php (line 68
我的 Javascript 按钮上批准评论时似乎遇到了 TokenMismatchException 问题。我从类似的按钮系统复制了代码,并对其进行了更改以满足该系统的要求。我正在重用 Session
我正在正常处理我的项目,当我点击刷新以查看我刚刚在其中一个 html 页面中所做的更改时,该页面在左上角显示了一个文本“重定向到:http://localhost:8888/xxx”。它将我重定向到登
我需要了解为什么 post 请求会引发 TokenMismatchException。我还尝试过添加标准解决方案 和 headers: {'X-CSRF-Token': $('meta[name=c
我正在尝试通过 dropzone 上传图片,但即使我在需要的地方添加了 csrf token ,我也收到 token 不匹配错误,我变得非常绝望...... 我的表单 {!! Form::open([
我遇到了一个问题,当用户闲置超过 24 小时(我的 session 超时),或者离开站点然后在 24 小时后返回时,他们并没有从站点注销,但是他们的session 已过期,或者至少他们的 _token
当 session 过期时,用户无法在不刷新页面的情况下重新登录,因为 ajax header 中的 _token 已过期(又名 TokenMismatchException)。我无法通过将用户重定向
在我的 Laravel 5 应用程序中,管理员可以上传产品图片和产品的 pdf 文件。因此,表单有 2 个输入字段,如下所示: {!! Form::label('image
我有一个工作表: {!! Form::open() !!} Name
我如何添加此输入: 到 FineUploader 而不创建表单? 最佳答案 您可能已经解决了您的问题,但这可能会帮助其他人跨越这个线程。以下对我有用: 在 : 然后按如下方式初始化您的fineU
我很惭愧问这个问题,因为这个问题已经被其他人问过很多次了,但是我自己找不到任何解决办法。 我正在使用 Laravel 5.3,我根据文档和其他 stackoverflow 主题创建了一个简单的表单。
我在我的生产服务器上遇到 TokenMismatchException,但应用程序在本地 Xampp 服务器和另一个主机上运行良好。它是我们的内部服务器,因此我们无法更改它。我们不得不使用它,但我们不
我的应用程序的 POST cURL 请求有问题。目前,我正在使用 laravel 5 构建 RESTFUL 注册功能。 这个例子的路由是 localhost:8000/user/create 我在终端
我的 laravel 版本是 5.5,在我的应用程序中没有任何错误。 当我将我的 laravel 版本升级到 5.6 时,发生了 laravel TokenMisMatchException。我已经在
我是一名优秀的程序员,十分优秀!