Node.js Express 应用无法从 dropzone.js 回调重定向

Node.js express app fails to redirect from dropzone.js callback

我正在尝试向我的 node.js 应用程序添加一个 dropzone.js 支持的拖放上传页面,该应用程序使用 express/jade 模板创建其页面。我遇到的问题是我似乎无法从 dropzone 回调中重定向用户。

这是我创建 dropzone 的 jade 文件(注意 scipts 和 css 在布局中加载):

extend layout
block content
    div(id="dropzone")
        form(method="POST" action="upload" class="dropzone" id="my-dropzone")

这是我非常简单的回调:

app.post("/upload", function(req, res) {
    console.log("UPLOAD POST");
    res.redirect("/");
    //project.finishUpload(db, req, res);
});

我看到了来自 console.log 的打印,但它从未重定向回根目录。

此外,这是我的 Dropzone 选项:

Dropzone.options.myDropzone = {
  paramName: "file",
  maxFilesize: 10, 
  acceptedFiles: "application/zip"
};

我该怎么做才能从我的 Dropzone 回调中进行重定向?

您需要在客户端代码中执行重定向,因为您正在提交 AJAX 表单,而不是正常的基于浏览器的表单提交。

app.post("/upload", function(req, res) {
    console.log("UPLOAD POST");
    res.status(201).end()
});

在客户端:

Dropzone.options.myDropzone = {
  paramName: "file",
  maxFilesize: 10, 
  acceptedFiles: "application/zip",
  init: function(){
    this.on("success", function(){
      window.location.pathname = "/";
    });
  }
};