我尝试这样做是为了处理 html 表单中的部分值。
var formData = new FormData();
formData.append('file', $('#FORM_ADD_LANG_FILE')[0].files[0]);
formData.append('add_lang_code', $('#FORM_ADD_LANG_CODE').val());
formData.append('job', jobid);
var post_setting = new Array(false,false);
但在我的控制台中显示以下错误,我不知道为什么
"TypeError: 'append' called on an object that does not implement interface FormData."
我通过这个函数生成ajax调用
function getAJAXcall(processData, contentType, formData, callback) {
var returnValue = {
url: '".$global['serverurl']."module/".$m['ID']."/code/cms_data.php',
type: 'POST',
data: formData,
success: callback
};
if (processData === **false**) returnValue.processData = processData;
if (contentType === **false**) returnValue.contentType = contentType;
}
并以这种方式调用他们
$.ajax(getAJAXcall(post_setting[0], post_setting[1], formData, function(result)
{ ...my callback functions... }
我还尝试更改 post_setting = new Array(false,false);为 true,true 但结果是一样的
最佳答案
您使用 right method call为此,所以可能还有其他问题。
FormData
是否可以被其他一些对 .append()
一无所知的库(可能是 polyfill)覆盖?检查浏览器控制台中的 FormData
,看看是否能发现任何可疑之处。
您在 jQuery AJAX 调用中使用结果,对吗?然后this answer适用于您。简而言之,添加
processData: false,
您的 AJAX 参数。
关于javascript - 使用 formData 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42786757/