2017-03-14 61 views
1

我試圖做這個工作的HTML表單的一部分值。通過使用formData的錯誤

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

var formData = new FormData(form [0]);' –

+0

應該是什麼形式[0]以及它應該是什麼? – newbieRB

+1

http://stackoverflow.com/questions/40316120/jquery-formdata-doesnt-work –

回答

0

您使用right method call這個,所以大概還有其他的錯誤。

可能FormData會被其他庫(可能是polyfill)覆蓋,它不知道.append()?查看您的瀏覽器控制檯FormData,看看,如果你能發現任何可疑的地方。

您在jQuery AJAX調用中使用結果,是true?那麼this answer適用於你。簡而言之,將

processData: false, 

添加到您的AJAX參數中。

+0

我試試看但結果是相同的,我在主要問題 – newbieRB

+0

中添加一些更多的信息也許ajax調用函數有一個錯誤,如果我手工編寫它「processData:false」,它會正常工作! – newbieRB

+0

函數有一個重要的錯誤 - 所以我更新了問題,通過使用processData:false;所有將正常工作:-) – newbieRB