Gab*_*eur 4 csrf laravel dropzone.js laravel-5.2 laravel-5.5
我正在使用Dropzone使用Laravel 5上传图像.在Dropzone对我的URL进行put调用后,我收到以下错误:
VerifyCsrfToken.php第67行中的TokenMismatchException:
但是,当我查看请求的有效负载时,令牌存在:
------ WebKitFormBoundary91A7BYrMsDcGTEvx Content-Disposition:form-data; NAME = "_方法"
PUT ------ WebKitFormBoundary91A7BYrMsDcGTEvx Content-Disposition:form-data; NAME = "_令牌"
j3NbjibYF7k8g2w1P0enw6YVfDrDvCGKFMCFt4NX ------ WebKitFormBoundary91A7BYrMsDcGTEvx内容处置:形状数据; NAME = "标题"
这是我的JS:
Dropzone.options.realDropzone = {
url: '/user/manage/10',
method: 'PUT',
paramName: 'file',
uploadMultiple: false,
parallelUploads: 100,
previewsContainer: '#dropzonePreview',
addRemoveLinks: true,
maxFiles: 10,
autoProcessQueue: false,
init: function () {
var dropZone = this;
this.element.querySelector("#save").addEventListener("click", function (e) {
e.preventDefault();
e.stopPropagation();
console.log("clicked submit");
dropZone.processQueue();
});
},
};
Run Code Online (Sandbox Code Playgroud)
我的表格:
{!! Form::model($asset, ['method' => 'PUT', 'class' => 'dropzone', 'id' => 'real-dropzone', 'action' => ['UserManagementController@update', $asset->id], 'file' => true]) !!}
Run Code Online (Sandbox Code Playgroud)
我的控制器:
public function update(Request $request, $id)
{
return dd(FileRequest::file('file'));
}
Run Code Online (Sandbox Code Playgroud)
小智 7
尝试在Dropzone选项中添加令牌:
sending: function(file, xhr, formData) {
formData.append("_token", "{{ csrf_token() }}");
},
Run Code Online (Sandbox Code Playgroud)
我的 Laravel 5.6 工作代码:
超文本标记语言
<div class="dropzone dropzone-previews" id="my-awesome-dropzone"></div>
Run Code Online (Sandbox Code Playgroud)
jQuery
Dropzone.autoDiscover = false;
$(document).ready(function() {
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
$("div#my-awesome-dropzone").dropzone({
url: "{{ url('/upload') }}",
headers: {
'x-csrf-token': CSRF_TOKEN,
},
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3316 次 |
| 最近记录: |