javascript - Node.js Express 应用程序无法从 dropzone.js 回调重定向

标签 javascript node.js express pug dropzone.js

我正在尝试将 dropzone.js 支持的拖放上传页面添加到我的 node.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 = "/";
    });
  }
};

关于javascript - Node.js Express 应用程序无法从 dropzone.js 回调重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28350098/

相关文章:

javascript - Webpack 导出的变量在浏览器中不可见

javascript - Sequelize CLI 在执行使用 db : migrate 创建表的命令时返回错误

javascript - NodeJS 从现有的 tls.Server 创建 https

javascript - 如何在 nodejs 中用单个正则表达式匹配多个字符串?

javascript - 在 Getters 后面封装方法

javascript - jQuery 使用 id 自动完成多个字段,但不使用 class;如果可能的话使用序列化

javascript - 将从 URL 提取的图像转换为 base64

javascript - 接下来点击图片库设置

node.js - 如何从 Passport.js 闪现消息?

node.js - 为什么 POST 重定向到 GET 而 PUT 重定向到 PUT?