FormData不是构造函数

时间:2016-05-27 17:35:35

标签: javascript jquery ajax constructor

我正在尝试制作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);
                    }
                });
            });

5 个答案:

答案 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();