Dropzone Processing Queue 无法进行服务器端验证
Dropzone Processing Queue not working on server side validation
我在 form.In 我的表单中使用 Laravel 5.8 和集成的 dropzone 我在服务器端有 post 标题唯一验证。
问题场景是
1.user 将输入博客 post 标题并在拖放区添加 5 张图片。
2.then如果输入的标题已经存在则验证错误
3.after 如果我们尝试提交表单,则再次验证错误然后请求将不会发送到 server.It 意味着 dzClosure.processQueue();
失败
document.getElementById("submitArticleFormButton").addEventListener("click", function(e) {
if (dzClosure.files.length>0) {
;
dzClosure.processQueue();
} else {
dzClosure.uploadFiles([]);
}
}
我该如何解决这个问题。
当我审阅一些问题时,我发现了以下文档
https://github.com/enyo/dropzone/wiki/FAQ#how-to-show-an-error-returned-by-the-server
即使我的情况是抛出验证错误然后它将是 419 但仍然无法按预期工作
更新
我只有在服务器端验证以外的情况下才会遇到问题 fine.even 如果我添加额外的图像然后如果我尝试提交那么它会正常工作。
甚至我已经包含了 csrf 令牌和 419 其自定义 header set
public function respond($data, $headers = [])
{
$data['error']="error occured";
return response()->json($data,419, $headers);
}
您是否已将 CSRF 令牌附加到 dropzone header?我前一段时间遇到了同样的问题,并且能够通过使用 CSRF 令牌 header 和 Dropzone 来解决它。
首先,您需要打印我们的 CSRF 令牌
var CSRF_token = {% csrf_token %};
然后将其包含在您的请求中。
sending: function(file, xhr, formData) {
formData.append("csrf_token", CSRF_token);
}
更新答案,
尝试手动将 Dropzone 文件状态更新为已排队,这样 dropzone 会再次上传相同的图像。
dzClosure.files.forEach(file => {
file.status = Dropzone.QUEUED
})
我在 form.In 我的表单中使用 Laravel 5.8 和集成的 dropzone 我在服务器端有 post 标题唯一验证。
问题场景是
1.user 将输入博客 post 标题并在拖放区添加 5 张图片。
2.then如果输入的标题已经存在则验证错误
3.after 如果我们尝试提交表单,则再次验证错误然后请求将不会发送到 server.It 意味着 dzClosure.processQueue();
失败
document.getElementById("submitArticleFormButton").addEventListener("click", function(e) {
if (dzClosure.files.length>0) {
;
dzClosure.processQueue();
} else {
dzClosure.uploadFiles([]);
}
}
我该如何解决这个问题。
当我审阅一些问题时,我发现了以下文档 https://github.com/enyo/dropzone/wiki/FAQ#how-to-show-an-error-returned-by-the-server
即使我的情况是抛出验证错误然后它将是 419 但仍然无法按预期工作
更新 我只有在服务器端验证以外的情况下才会遇到问题 fine.even 如果我添加额外的图像然后如果我尝试提交那么它会正常工作。 甚至我已经包含了 csrf 令牌和 419 其自定义 header set
public function respond($data, $headers = [])
{
$data['error']="error occured";
return response()->json($data,419, $headers);
}
您是否已将 CSRF 令牌附加到 dropzone header?我前一段时间遇到了同样的问题,并且能够通过使用 CSRF 令牌 header 和 Dropzone 来解决它。
首先,您需要打印我们的 CSRF 令牌
var CSRF_token = {% csrf_token %};
然后将其包含在您的请求中。
sending: function(file, xhr, formData) {
formData.append("csrf_token", CSRF_token);
}
更新答案,
尝试手动将 Dropzone 文件状态更新为已排队,这样 dropzone 会再次上传相同的图像。
dzClosure.files.forEach(file => {
file.status = Dropzone.QUEUED
})