如何解释这个?
使用简单的js函数进行ajax调用:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: {
_token: $('meta[name="csrf-token"]').attr('content')
}
});
for(var i = 0; i < 5; i++){
getUsers();
}
function getUsers() {
$.ajax({
url: '/users',
type: 'POST',
success: function(data) {
console.log(data);
}
});
}
在元<meta name="csrf-token" content="{{ csrf_token() }}" />
使用数据返回JSON:
public function users(){
$users = User::all();
return response()->json([
'users' => $users,
]);
}
在视频的最后,您可以看到RANDOM TokenMismatchException,即使令牌永远不会改变,但有时会发生错误。
https://www.youtube.com/watch?v=QDucHoP647g
我知道这个问题已经讨论了多年,但为什么不存在解决方案?
我也发布在laravel github上,但没有一个解决方案没有解决我的问题。
答案 0 :(得分:0)
为什么要两次发送令牌?从$.ajaxSetup()
为什么使用POST获取用户?改为使用GET。