为什么formData不是构造函数?

时间:2018-08-23 15:00:52

标签: javascript constructor tinymce

我正在使用TinyMCE编辑器,并且已经按照他们的演示和'T'的另一个教程进行操作。我的目标是使用图像上传器使用户能够将图像上传到服务器。  但是,当我使用图像上传器选择图像时,将弹出错误“ formData不是构造函数”。

error message

这是JavaScript代码:

images_upload_handler: function (blobInfo, success, failure) {
        var xhr, formData;
        xhr = new XMLHttpRequest();
        xhr.withCredentials = false;
        xhr.open('POST', 'upload.php');
        xhr.onload = function() {
          var json;
    
          if (xhr.status != 200) {
            failure('HTTP Error: ' + xhr.status);
            return;
          }
          json = JSON.parse(xhr.responseText);
    
          if (!json || typeof json.location != 'string') {
            failure('Invalid JSON: ' + xhr.responseText);
            return;
          }
          success(json.location);
        };
        formData = new FormData();
        formData.append('file', blobInfo.blob(), fileName(blobInfo));
        xhr.send(formData);
      }

我按照此处的说明进行操作: https://www.tiny.cloud/docs/general-configuration-guide/upload-images/#imageuploaderoptions

我使用的另一个教程(大致相同)在这里: https://www.codexworld.com/tinymce-upload-image-to-server-using-php/comment-page-1/#comment-61677

2 个答案:

答案 0 :(得分:0)

如果更改名称后仍然出现相同错误,则可能是在缓存旧页面。如果您使用的是chrome或fitefox,则应该可以在该函数中添加一个断点,并在出现错误的情况下移至确切的行。

一切看上去都与代码正确

答案 1 :(得分:0)

您不能使用变量名 'formData' 初始化为构造函数 'FormData',变量名会覆盖构造函数定义。所以应该是:

var FormRequest= new FormData();

但是您的变量不能命名为 FormData。我刚刚在 Vue 应用中遇到了这个问题。