JQuery Ajax时VerifyCsrfToken.php中的TokenMismatchException [重复]
Posted
技术标签:
【中文标题】JQuery Ajax时VerifyCsrfToken.php中的TokenMismatchException [重复]【英文标题】:TokenMismatchException in VerifyCsrfToken.php while JQuery Ajax [duplicate] 【发布时间】:2016-03-30 10:26:21 【问题描述】:下面是 Blade 中的代码。
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
@foreach($Projects as $Project)
<tr>
<td>
@if($Project->ProjectStatusID == \App\Enumeration\Project\ProjectStatus::Open)
<a pid="!! $Project->ProjectID !!" class="Shutmedown" >Cancel</a>
@endif
</td>
</tr>
@endforeach
JQuery
$('.Shutmedown').click(function()
$.ajax(
url: "/CancelProject",
type: "POST",
data: "ProjectID" : $(this).attr('pid'),
async: true,
contentType: "application/json; charset=utf-8",
success: function ()
location.reload();
,
error: function ()
alert('hi');
);
);
有什么问题?
JQuery Ajax 报错:
加载资源失败:服务器响应状态为 500 (内部服务器错误)
在检查有关请求的更多详细信息时:我收到以下错误详细信息。
VerifyCsrfToken.php 第 53 行中的 TokenMismatchException:
我错过了什么吗?
【问题讨论】:
看看***.com/questions/20444236/… 【参考方案1】:您好,在 Laravel 文档中,必须使用标头将令牌注入到 ajax 请求的后端。所以他们建议将令牌放在元字段中,例如。
<meta name="csrf-token" content=" csrf_token() ">
然后这样做:
$.ajaxSetup(
headers:
'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
);
通过标头将令牌发送到后端。
希望对你有帮助。
因此,在您的情况下,在 ajax 请求中传递保存令牌的输入值。
【讨论】:
以上是关于JQuery Ajax时VerifyCsrfToken.php中的TokenMismatchException [重复]的主要内容,如果未能解决你的问题,请参考以下文章
JQuery Ajax - 如何在进行 Ajax 调用时检测网络连接错误