jquery - $.ajax 与 $.post 相比

标签 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");

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

最佳答案

  • $.post 仅用于发出 HTTP Post 请求。内部它 使用带有一组特殊参数的 $.ajax。
  • $.ajax 可用于 更灵活地执行任何类型的 HTTP 请求

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

$.post 相当于:

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

因此,方法调用中的唯一区别是 contentType。这意味着您基本上正在尝试比较具有不同参数集的两个方法调用。

关于jquery - $.ajax 与 $.post 相比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206698/

相关文章:

javascript - 交换视频标签会使整个 div 变空

javascript - 使用 AJAX 调用生成的数据用于 OnClick 事件

ruby-on-rails - 带有 data-remote ="true"的链接未作为 JSON 处理

javascript - 使用 Ajax 验证表单时未定义

javascript - Jquery AJAX ($.get or $.ajax) HTML 文件检索、操作和 JSON 发送

javascript - 使用 Javascript/jQuery 向下翻页?

javascript - 将带有 AM/PM 的日期字符串转换为 javascript 日期对象

javascript - ajax post成功后,如何使用JQuery .load()方法发送POST请求

javascript - jquery 数据表编辑器 : "select" field displays option value instead of label