Я работаю с редактором TinyMCE, и я следил за их демонстрацией и другим руководством по «T». Моя цель - использовать загрузчик изображений, чтобы пользователь мог загружать изображения на сервер. Однако, когда я использую программу загрузки изображений для выбора изображения, появляется сообщение об ошибке «formData не конструктор».
Вот код 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
Ошибка использует "formData", даже если я изменю свое имя переменной на другое. Я убедился, что набрал FormData (); Я не уверен, почему в ошибке используется строчная буква f.
Какой браузер вы используете?
Я использую Google Chrome и получаю указанную ошибку. Я только что попробовал Internet Explorer, и он говорит, что "fileName" не определено.
Кажется, ваш код отлично работает для меня в этой скрипке TinyMCE: fiddle.tinymce.com/fzgaab Вы видите там ошибки? Я тестировал в Chrome (последний).
Код по-прежнему у меня не работает. Теперь говорится, что имя_файла не определено
Вы решили это, у меня такой же Uncaught (in promise) TypeError: FormData is not a constructor, потому что FormData не определен



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы изменили имя и по-прежнему получаете ту же ошибку, возможно, это кеширует старую страницу. Если вы используете chrome или fitefox, вы должны иметь возможность добавить точку останова в этой функции и перейти к точной строке с ошибкой.
С кодом все выглядит правильно
Вы не можете использовать имя переменной formData для инициализации конструктора FormData, имя переменной переопределяет определение конструктора. Так и должно быть:
var FormRequest= new FormData();
Но ваша переменная НЕ МОЖЕТ называться FormData. Я только что столкнулся с этим в приложении Vue.
formDataилиFormData?new FormData();работает нормально.