丢弃区 - 未提供URL的未捕获错误

46

我无法弄清楚如何在使用Dropzonejs上传文件后获取JSON响应。

我只有这个:

<script src="{% static "dropzone/dropzone.js" %}"></script>

<form id="id_dropzone" class="dropzone" action="/ajax_file_upload_handler/"
              enctype="multipart/form-data" method="post"></form>

我认为如果不手动初始化dropzone是不可能的,所以我把它改成了:

$("#id_dropzone").dropzone({
                maxFiles: 2000,
                url: "/ajax_file_upload_handler/",
                success: function (file, response) {
                    console.log(response);
                }
            });


<form id="id_dropzone" class="" action=""
              enctype="multipart/form-data" method="post"></form>

返回 未捕获的错误:未提供网址。

如何初始化Dropzone,以便我可以添加选项,例如maxFiles、maxSize和获取JSON响应?


你想添加什么样的选项?不清楚你在问什么。选项可以是任何东西。 - lin
选项如maxFiles等,但主要问题是捕获响应。 - Milano
你现在在 console.log(response); 附近捕获响应,那么问题出在哪里呢? - lin
除了错误之外,没有任何东西被记录下来,所以有一些问题我找不到。 - Milano
2个回答

87
当一个Dropzone附加到一个对象上时,如果没有提供以下两种之一,则会出现“未提供URL”错误:
- 表单上的操作属性告诉dropzone在哪里发布 - 特定dropzone的配置
我的猜测是,您可能存在竞争条件,在您配置之前,Dropzone会将自己附加到元素上。确保您的配置要么直接在JS导入后进行,要么设置Dropzone.autoDiscover = false;并显式实例化Dropzone。
欲了解更多信息,请查看此处
<script src="{% static "dropzone/dropzone.js" %}"></script>

<script type="text/javascript">

   Dropzone.autoDiscover = false;

   $(document).ready(function () {
        $("#id_dropzone").dropzone({
            maxFiles: 2000,
            url: "/ajax_file_upload_handler/",
            success: function (file, response) {
                console.log(response);
            }
        });
   })
   
</script>

<form id="id_dropzone" 
      class="dropzone" 
      action="/ajax_file_upload_handler/"
      enctype="multipart/form-data" 
      method="post">
</form>

2
但是当您提交时,文件为空。 - Fury

-2
我解决这个问题的方法是在代码末尾编写一个脚本,并在脚本中指定defer为最后加载的内容。 点击此处查看图片描述 这是我的代码截图: 点击此处查看图片描述 我想每个人的代码都差不多,所以希望你测试一下并回复是否找到了解决方案。

1
请直接将您的代码发布到帖子中,无需添加可能在未来失效的额外URL。 - Tyler2P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接