Я получаю эту ошибку: Uncaught TypeError: options.data.indexOf is not a function
.
Я искал решение и обнаружил, что это, вероятно, из-за версии jQuery (у меня есть jQuery 3.3.1, кстати).Но большинство проблем были тривиальными, как $(window).on('load', ...)
вместо $(window).load(...)
.Для этого я понятия не имею, что на самом деле происходит.
Итак, вот код:
function changePhotoPOST() {
var form = document.getElementById('someFormName');
var formData = new FormData(form);
$.ajax({
type: "POST",
url: "...someUrl...",
data: formData,
processData: false,
contentType: false,
success: onSuccess,
error: onFailed
});
}
Форма выглядит так:
<form id="someFormName">
<input type="text" value="@User.Identity.Name" name="Email" hidden />
<input id="file" type="file" onchange="changePhotoPOST()" name="File" hidden />
<a class="some classes" onclick="document.getElementById('file').click(); return false">Some text</a>
</form>
Я используюстилизованная ссылка, чтобы открыть средство выбора файлов, и как только файл выбран, я отправляю форму.Тем не менее, форма также может быть нормальной формой с видимыми входными данными, я не думаю, что это важно.
Поэтому, когда файл выбран, форма отправляется, я получаю упомянутую ошибку.Насколько я понимаю, indexOf по каким-то причинам используется для данных?Есть ли где-нибудь синтаксическая ошибка?Могу ли я решить эту проблему, не меняя версию jQuery?