尝试使用 ajax 上传文件时出现'Illegal invocation'错误



试图通过ajax上传文件,但当我试图通过文件时,我一直收到"非法调用"错误。所有其他输入字段都可以顺利传递(如果我注释掉文件(。

我的代码的精简版:

let file = $('.file-upload')[0];
let form_data = new FormData();
form_data.append('file', file.files[0]);

let data = {
action: 'update_settings',
processData: false,
contentType: false,
'submit': true,
'username': $('input[name="username"]').val(),
'email': $('input[name="email"]').val(),
'file': form_data,
};

$.post(url, data, function(response) {


});

减少HTML:

<form method="POST" enctype="multipart/form-data">
<input class="file-upload" type="file" name="file" accept=".jpg, .jpeg, .png">
<input type="submit" name="submit">
</form>

此外,在不使用ajax的情况下上传文件也很好。

您没有正确调用ajax。应该是

let data = {
// action: 'update_settings',
processData: false,
contentType: false,
// 'submit': true,
// 'username': $('input[name="username"]').val(),
// 'email': $('input[name="email"]').val(),
'data': form_data, // <-----
};

此外,您还应该在formData对象中添加其他参数(用户名、电子邮件、操作、提交(:

formData.append("action", 'update_settings');
// and so on

未测试。。。但也有类似的东西。

相关内容

最新更新