javascript - 使用 formData 时出错

标签 javascript jquery

我尝试这样做是为了处理 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/

相关文章:

javascript - 带有 2 个部分的复选框场景的 jQuery 验证

Javascript 使用整月的日期差异

javascript - 如何替换 VS2010 javascript 文件

javascript - 使用 jquery 重新定位 html 中的元素

javascript - 当用户单击提交时,ajax 停止 Bootstrap 模式框关闭

javascript - 使文本行具有相同的长度

javascript - 为视频 WebRTC 替换 .addStream()

Javascript 使用 parseint 从类名中获取 id 号

javascript - Select2 渲染的 span 元素无法复制到剪贴板中

javascript - 来自 ngFor angular2 的拼接元素