【发布时间】:2016-06-25 04:08:00
【问题描述】:
我正在使用带有 Jquery ajax 的 Laravel 5 开发应用程序。我在视图中有一个选项卡面板。单击选项卡按钮时它正在加载初始表单。它使用 jquery ejax 加载没有任何问题。之后用户可以在表单中输入数据,当点击更新按钮时,数据应该使用 jquery ajax 保存到数据库中。基本上不需要刷新页面。
虽然以前的 ajax 表单加载工作,当单击此按钮时,页面刷新并显示令牌不匹配异常。我也包含了 csrf 令牌。不知道是什么原因。我已将 csrf 令牌作为元内容包含在内像这样的价值,
<meta name="csrf-token" content="{{csrf_token()}}" />
而在 jquery ajax 代码中,得到这样的值。
var CSRF_TOKEN=$('meta[name="csrf-token"]').attr('content');
以下是 Laravel 堆栈跟踪,
TokenMismatchException in compiled.php line 2440:
in compiled.php line 2440
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 12083
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 10785
at StartSession->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 11789
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 11738
at EncryptCookies->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 2478
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 8935
at Pipeline->then(object(Closure)) in compiled.php line 1891
at Kernel->sendRequestThroughRouter(object(Request)) in compiled.php line 1880
at Kernel->handle(object(Request)) in index.php line 53
【问题讨论】:
-
你能发布你的 ajax 邮政编码吗?有时缺少某些代码行会导致该错误。
-
实际上我的其他用于加载配置文件信息的 ajax 代码工作正常。所以我复制了相同的代码并根据此要求对其进行了编辑。无论如何我会在这里发布代码。