我正在尝试制作ajax请求来上传图片。我的问题是当我创建 FormData 时。我的控制台说“dataForm不是构造函数”。
我该如何解决这个问题?
这是我的脚本
$("#new-broadcast-image-static").on("change", function(formData) {
var formData = new formData();
// line that console point the error //
var file = $("#new-broadcast-image-static")[0].files[0];
formData.set("image", file);
$.ajax({
url: apiUrl + "image/upload",
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
xhrFields: {
withCredentials: true
},
success: function(data) {
hashNewBroadcastImage = data.data.identifier;
$("#hash-new-broadcast-image-static").val(hashNewBroadcastImage);
}
});
});
答案 0 :(得分:5)
将其资本化:var formData = new FormData();
但是你还想尝试什么呢?您将重新分配您获得的变量作为参数:
$("#new-broadcast-image-static").on("change", function(formData) {
var formData = new formData();
您可能希望将其更改为
$("#new-broadcast-image-static").on("change", function(e) {
var formData = new FormData();
答案 1 :(得分:2)
不完全确定,但我认为你有大写字母错误,你写的是formData()而不是FormData()
正确的方法:
var formData = new FormData();
答案 2 :(得分:2)
请检查此可能性,它肯定会解决您的问题
如果要为FormData分配值,请在JS代码的任何位置
FormData={"PersonID":1,"PersonName":"Test"};
如果你像这样使用
var a = new FormData();
然后它会抛出错误,例如“ FormData不是构造函数,因为它已经被声明为Object ”。
答案 3 :(得分:0)
根据我的经验,有时因为 javascript 函数是调试器模式。
答案 4 :(得分:-1)
这段代码毫无意义:
// function will create a variable called formData
function(formData) {
// Create a new variable? And attempt to create an object with the
// same name as a varaible? WTF
var formData = new formData();