我正在制作一个laravel应用程序并且我使用了大量的POST请求。其中许多看起来像这样:
var classElements = document.querySelectorAll("tr.ui-selected td.filename");
var csrf = $('input[name=_token]').val();
for(var x = 0;x < classElements.length;x++){
var result;
result = classElements[x].innerHTML;
$.ajax({
async: true,
method: 'POST',
url: '../public/deletefile',
data: { filename: result, "_token": csrf },
success: function(response) {
$( "tr.ui-selected" ).remove(response);
}
});
};
在让我们说出100条发布请求后,我得到了500 Internal Server Error
而laravel说TokenMismatchException in VerifyCsrfToken.php line 53:
。这是变量csrf的HTML:
<form enctype="multipart/form-data" action="{{ URL::to('upload') }}" class="dropzone" id="dropzoneFileUpload">
<input type="hidden" value="{{ csrf_token() }}" name="_token" />
</form>
这可以解决吗?
答案 0 :(得分:1)
在让我们说 100 发布请求后我得到500内部 服务器错误
执行并发ajax请求时,这是一个已知问题。
我不确定它是否已在5.1 or 5.2
版本中修复,因为我在5.0
版本中遇到了同样的问题。
有些人有这个问题,有些人没有,也无法复制它。问题可能取决于环境。
您可以尝试升级到最新版本。
Race condition on session engine causing unexpected behavior on concurrent requests