$ .ajax与$ .post相比

时间:2012-02-09 07:03:34

标签: jquery ajax

我注意到在尝试以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");

这只是好奇心,但有谁知道为什么?有没有理由使用一个而不是另一个?

1 个答案:

答案 0 :(得分:6)

  • $ .post 仅用于发布HTTP Post请求。在内部 使用$ .ajax和一组特殊参数。
  • $。ajax 可以用来
  • ,可以更灵活地执行任何类型的HTTP请求

另请参阅:http://api.jquery.com/jQuery.post/

$。发布相当于:

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

因此,方法调用的唯一区别是contentType。这意味着你试图基本上将两个方法调用与一组不同的参数进行比较。