2012-02-09 82 views
1

當試圖以JSON格式發佈表單數據,下列不工作,我注意到:

$.ajax({ 
    type: "POST", 
    url: url, 
    data: JSON.stringify(formData), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     // TODO: Listen for server ok. 
     alert(msg); 
     } 

但是,這個工程:

$.post(url, 
     JSON.stringify(formData), 
     function(msg) { 
     // TODO: Listen for server ok. If this is successfull.... clear the form 
     alert(msg); 
     }, 
     "json"); 

這只是好奇心,但有誰知道爲什麼?有沒有任何理由使用這個而不是另一個?

回答

6
  • $ .post僅用於發佈HTTP Post請求。它在內部使用$ .ajax和一組特殊的參數。
  • $就可以用來做 任何HTTP請求的更大的靈活性

參見:http://api.jquery.com/jQuery.post/

$。員額等同於:

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

所以你方法調用的唯一區別就是contentType。這意味着你正試圖將兩個方法調用與一組不同的參數進行比較。