【问题标题】:what's the diffrence between $.ajax / $.get / $.POST / .load()?$.ajax / $.get / $.POST / .load() 有什么区别?
【发布时间】:2013-07-02 20:52:32
【问题描述】:

我正在尝试理解 AJAX 和 JSON,但我不确定我是否明白,有些方法和函数在做同样的事情......

你有$.getJSON从服务器检索JSON格式数据,你有$.ajax + $.post + $.get + load()向服务器发送数据数据?

我可以使用所有这些方法来发送 JSON 数据吗?

我真的很困惑!帮我解决这个问题。

【问题讨论】:

  • 是的,我已经阅读了 api 并且变得更加困惑。哈哈
  • 您阅读手册了吗?因为很明显,所有其他方法都只是$.ajax 的特殊形式。 这是一个简写的Ajax函数,相当于...
  • 是的,我确实读过那些 api 文档,很抱歉,但对我来说它还不清楚...
  • google可以解决这个问题,每个问题都应该是google query。

标签: javascript jquery ajax post get


【解决方案1】:

AJAX 请求本质上是一个 HTTP 请求。这与用于 Web 上的所有内容的协议相同(可以说,如果它不是 HTTP,它就不是 Web)——加载页面、页面上的图像、CSS 和 JS 包括, 提交的表单等。

因此,它几乎继承了 HTTP 的所有灵活性,这意味着像 jQuery.ajax 这样的通用函数最终会变得非常复杂,有很多您通常不需要担心的选项。这导致了您提到的Shorthand Methods,它捆绑了常用的选项和功能集。

您可能想要改变的事情包括:

  • 请求的“方法”:GET 或 POST(或不太常见的方法,如 HEAD、PUT、DELETE...)。 GET 请求是最简单的:请求这个 URL,给我它的内容; GET 请求的参数被推送到 URL 的“查询字符串”中。 POST 请求是在普通页面上提交更大的表单的方式:参数作为与 URL 和控制标头分开的数据体传递;对于 AJAX 请求,这通常有助于将 XML 或 JSON 块 发送到 URL。 这是一个非常广泛的概述,两者在行为和含义上还有很多区别。
  • 您希望在响应中使用的“内容类型”(对于 POST 请求,您正在发送的数据)。这不仅告诉服务器和浏览器它正在处理什么数据,确保它能够成功传递它,它还可以给 jQuery(或任何库)提示下一步该做什么:如果调用返回 XML,你将可能想立即将其作为 DOM 进行操作;如果是 JSON,您需要将其解析为 JS 对象。
  • 数据返回后您想要执行的操作。我已经提到过解析 JSON 或 XML,但是如果您的响应实际上是您想要直接注入父页面的 HTML 块怎么办?显然,您可以在回调函数中自己执行此操作,但 jQuery 再次包含.load() 形式的速记形式。

上述所有情况在 jQuery.ajax 中都是可能,但是你必须记住参数,即使你一次又一次地陷入相同的情况,所以大多数情况下您将使用适合您当时需要的任何一种速记的时间。

【讨论】:

  • 谢谢!非常有用的信息!
【解决方案2】:

所有这些只是shorthands 用于调用$.ajax function

  • load 用于检索 HTML 并将其一次性写入 DOM。您想加载 JSON。
  • getgetJSON 使用不适合发送 JSON 数据的 GET 请求。
  • post 执行 POST 请求,但不允许您选择发送数据的 contentType

要发送 JSON,您应该使用带有许多选项的 $.ajax 函数,请参阅 Send JSON data with jQuery

【讨论】:

  • 你写的大部分内容我都得到并理解,但究竟什么是 POST 和 GET 请求,它们的含义是什么?
猜你喜欢
  • 2015-08-03
  • 2011-03-05
  • 2011-03-29
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 2011-02-20
  • 2014-08-05
相关资源
最近更新 更多