使用formData时出错

时间:2017-03-14 13:01:51

标签: 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);为真,真,但结果是相同的

1 个答案:

答案 0 :(得分:0)

你使用right method call就可以了,所以可能还有别的错误。

可能FormData被其他库(可能是polyfill)覆盖,它对.append()一无所知?检查浏览器的控制台是否FormData,看看是否可以发现任何可疑的东西。

你在jQuery AJAX调用中使用结果,是吗?然后this answer适用于您。简而言之,添加

processData: false,

到您的AJAX参数。