$ .ajax / $ .get / $ .POST / .load()之间有什么区别?

时间:2013-07-04 19:43:14

标签: javascript jquery ajax post get

我正在尝试理解AJAX和JSON,我不确定是否已经得到它,有些方法和函数正在做同样的事情......

您已经$.getJSON从服务器检索JSON格式数据,并且您有$.ajax + $.post + $.get + load()来发送数据数据到服务器?

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

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

2 个答案:

答案 0 :(得分:2)

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

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

要发送JSON,您应该使用$.ajax函数及其众多选项,请参阅Send JSON data with jQuery

答案 1 :(得分:2)

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,但你必须记住参数,即使你一次又一次陷入相同的情况,所以机会很大你将在那个时候使用适合你需求的短发时间。