2015-05-13 82 views
1

有人可以向我解釋爲什麼我通過執行下面的代碼來得到下面的錯誤?SyntaxError:JSON.parse數據不喜歡0?

SyntaxError : JSON.parse : unexpected end of data at line 1 column 1 of the JSON data"

經過千試驗,我意識到,如果我從StatutForm2或其他任何替代的價值0,錯誤消失。 FormData不接受值0

謝謝你的幫助。

代碼:

$(document).on('click', '.button1, .button2', function() { 
    var Form_id = $(this).attr('data-id'); 
    var formData = new FormData(); 
    formData.append("IDForm", $('#IDForm' + Form_id).val()); 
    formData.append("FirstnameForm", $('#FirstnameForm' + Form_id).val()); 
    formData.append("NameForm", $('#NameForm' + Form_id).val()); 
    formData.append("BirthForm", $('#BirthForm' + Form_id).val()); 
    formData.append("EmailForm", $('#EmailForm' + Form_id).val()); 
    formData.append("SchoolForm", $('#SchoolForm' + Form_id).val()); 
    formData.append("DateFromForm", $('#DateFromForm' + Form_id).val()); 
    formData.append("DateToForm", $('#DateToForm' + Form_id).val()); 
    formData.append("DaysForm", $('#DaysForm' + Form_id).val()); 
    formData.append("TodayForm", $('#TodayForm' + Form_id).val()); 

    if (!$(this).hasClass('button1')) { 
     formData.append("StatutForm", "1"); 
    } 
    else { 
     var texte_Form = $('#ecrire_' + Form_id).val(); 
     var mail_Form = new Blob([texte_Form], { type: "text/xml"}); 
     formData.append("mail_Form", texte_Form); 
     formData.append("StatutForm", "0"); 
    } 

    $.ajax({ 
     type: 'POST', 
     url: 'file.php', 
     dataType: "json", 
     data: formData, 
     cache: false, 
     contentType: false, 
     processData: false, 
     success: function (form) { 
      alert("Right !."); 
     }, 
     error: function(){ 
      alert("Error !"); 
     } 
    }); 
}); 
+0

錯誤消息的投入聽起來好像是在服務器返回一個空的響應。如果沒有看到服務器端代碼,就不可能說出錯。 – JJJ

回答

0

您解析從服務器接收數據時收到錯誤。

dataType: "json"

dataType - 您期望從服務器返回的數據類型。

json - 將響應評估爲JSON並返回JavaScript對象。

http://api.jquery.com/jQuery.ajax/

-1

您應該設置一個數據參數上,你需要像

<input id="postKey" ... data-form="formID"> 

之後,它應該像這樣工作

$(document).on('click', '.button1, .button2', function() { 
    var Form_id = $(this).attr('data-id'); 

    var formData = {}; 
    $.each($('input[data-form="'+Form_id+'"]'), function(i,val){ 
     id = $(val).attr('id'); 
     formData[id]=$(val).val(); 
    } 


    if (!$(this).hasClass('button1')) { 
     formData.StatutForm = "1"; 
    } 
    else { 
     var texte_Form = $('#ecrire_' + Form_id).val(); 
     var mail_Form = new Blob([texte_Form], { type: "text/xml"}); 
     formData.mail_form = texte_form; 
     formData.StatutForm = "0"; 
    } 

    $.ajax({ 
     type: 'POST', 
     url: 'file.php', 
     dataType: "json", 
     data: JSON.stringify(formData), 
     cache: false, 
     contentType: false, 
     processData: false, 
     success: function (form) { 
      alert("Right !."); 
     }, 
     error: function(){ 
      alert("Error !"); 
     } 
    }); 
});