gpt4 book ai didi

javascript - 构造失败 'FormData'

转载 作者:行者123 更新时间:2023-12-01 14:59:05 26 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












此问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-topic在这里,这个问题的解决方式不太可能帮助 future 的读者。


3年前关闭。







Improve this question




当我在我的 dropzone 中上传文件时,它不起作用。通常它工作得很好,但自从 1 个月以来我有这个 JS 错误:

Uncaught TypeError: Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.
那是代码,当我使用 FormData 时:
 var form_data = new FormData("#my-awesome-dropzone");
多区代码
  Dropzone.options.myAwesomeDropzone = {
maxFilesize: 5,
maxFiles: 1,
addRemoveLinks: true,
dictResponseError: 'Server not Configured',
acceptedFiles: ".pdf",
init:function(){
var self = this;
// config
self.options.addRemoveLinks = true;
self.options.dictRemoveFile = "Delete";
//New file added
self.on("addedfile", function (file) {
console.log('new file added ', file);
if(!confirm("Do you want to upload the file?")){
this.removeFile(file);
return false;
}

});
// Send file starts
self.on("sending", function (file, xhr, formData) {
console.log('upload started', file);
$('.meter').show();

var form_data = new FormData("#my-awesome-dropzone");

$.ajax({
url: '/settings/uploadFile',
data: 'file=' + file.name ,
type: 'POST',
processData: false,
contentType: false,
success: function(response) {
}
});
});

// File upload Progress
self.on("totaluploadprogress", function (progress) {
console.log("progress ", progress);
$('.roller').width(progress + '%');
});

self.on("queuecomplete", function (progress) {
$('.meter').delay(999).slideUp(999);
});

// On removing file
self.on("removedfile", function (file) {
console.log(file);
});
}
代码
     <form  enctype="multipart/form-data" action="/settings/uploadFile"  method="post" class="dropzone" 
id="my-awesome-dropzone">


</form>
编辑 01-08-2019 :好的,刚刚测试过,它可以在 Microsoft Edge 44.17763.1.0 上运行,但不能在 Google Chrome 或 Firefox 上运行,有什么解释吗?

最佳答案

您正在传递 字符串 FormData .正如错误所说,它需要一个表单元素,而不是字符串。所以:

var form_data = new FormData(document.getElementById("my-awesome-dropzone"));

现场示例:

var data = new FormData(document.getElementById("my-awesome-dropzone"));
console.log("Created FormData, " + [...data.keys()].length + " keys in data");
<form  enctype="multipart/form-data" action="/settings/uploadFile"  method="post" class="dropzone" id="my-awesome-dropzone">
<input type="text" name="x" value="kittens">
<input type="text" name="y" value="puppies">
</form>

关于javascript - 构造失败 'FormData',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57285984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com