AJAX、RESTful/Rest、JSON和JSONP之间有什么区别?

AJAX、RESTful/Rest、JSON和JSONP之间有什么区别?,json,ajax,rest,jsonp,Json,Ajax,Rest,Jsonp,我只是对这些术语感到困惑。有人能给我举个例子吗?Ajax代表异步JavaScript和Xml/XhttpRequet(X取决于并改变了,因为现在大部分使用的是json) 这是一种使用javascript执行从页面到服务器的请求并接收一些响应的方法 这使页面看起来非常响应,而无需重新加载整个页面即可对其执行操作。例如,将此答案发布到您的问题上。:-) Json是一种数据格式,表示JavaScrip对象表示法。它是一种比xml更轻的序列化格式,并且具有JavaScript的优势 JsonP是将Aja

我只是对这些术语感到困惑。有人能给我举个例子吗?

Ajax代表异步JavaScript和Xml/XhttpRequet(X取决于并改变了,因为现在大部分使用的是json)

这是一种使用javascript执行从页面到服务器的请求并接收一些响应的方法

这使页面看起来非常响应,而无需重新加载整个页面即可对其执行操作。例如,将此答案发布到您的问题上。:-)

Json是一种数据格式,表示JavaScrip对象表示法。它是一种比xml更轻的序列化格式,并且具有JavaScript的优势

JsonP是将Ajax与Json结合使用的下一个合乎逻辑的步骤

服务器将使用JSONP响应,JSONP将Json对象包装在回调函数中。该函数的名称由客户端传递给服务器,通常作为querystring中的参数。 P代表填充,因为服务器用函数名和作为参数的对象包围json对象

callback({"name":"my name"});
请参阅:以获取更详细的解释。

  • -“异步Javascript和XML”。Ajax松散地定义了一组技术,以帮助web应用程序提供更丰富的用户体验。屏幕的数据更新和刷新是使用javascript和xml(或json或普通http post)异步完成的

  • -“Javascript对象表示法”。JSON与xml类似,因为它可以用来描述对象,但它更紧凑,并且具有作为实际javascript的优势。用JSON表示的对象可以转换为实际对象,并在javascript代码中进行操作

  • 默认情况下,Ajax请求必须发生在发起请求的页面的同一域中。-创建“带填充的JSON”-是为了允许您从不同的域请求JSON资源。(是JSONP的更新更好的替代品。)

  • -“代表性国家转移”。使用REST原则的应用程序具有Url结构和围绕资源使用的请求/响应模式。在纯模型中,HTTP动词Get、Post、Put和Delete分别用于检索、创建、更新和删除资源。通常不使用Put和Delete,将Get和Post留给map来选择(Get)和创建、更新和删除(Post)


Ajax,或者更确切地说,Ajax,代表异步Javascript和Xml。从技术上讲,它是指浏览器(使用
XmlHttpRequest
)代表当前页面上运行的某些脚本发出的任何异步请求,而不管返回的内容类型如何。它还可用于描述构建页面/站点的特定模式,其中大部分/所有内容在页面上动态获取/更新。当用于描述数据格式时,“ajax”通常表示“xml”

JSON是一种数据编码格式。该名称本身是“JavaScript对象表示法”的首字母缩写。JSON格式的数据如下所示:

{"key": "value1", "key2": {"number": 1, "array": [0, 1, 2]}}
JSON数据可以通过AJAX请求获取,尽管它在其他上下文中作为轻量级、可扩展且易于解析的数据交换格式非常常用

JSONP只是包装在回调函数中的JSON格式的数据。“P”代表“with Padding”,这有点愚蠢,除非您喜欢将函数调用视为“Padding”。在任何情况下,JSONP数据如下所示:

someFunction({"key": "value1", "key2": {"number": 1, "array": [0, 1, 2]}});
因此,JSONP实际上只是一个JavaScript片段,与JSON不同,JSON不在JavaScript、浏览器(或其他支持JavaScript的客户端)和AJAX请求的上下文之外使用。使用JSONP的原因是它允许被颠覆。如果站点Y与站点X位于不同的域中,则源于站点X的脚本无法直接向站点Y发出请求。但是,如果站点Y的服务器可以发送JSONP格式的响应,则来自站点X的脚本可以向引用站点Y上URL的文档添加新的
标记,当从站点Y加载响应时,它将调用脚本X在文档中定义的回调函数,从而允许脚本X访问从站点Y动态加载的数据

请注意,JSONP数据(通常)不是使用
XmlHttpRequest
请求的。这可以通过这种方式完成,但要遵守同源策略的标准警告,这样一来,您就失去了使JSONP在第一时间变得有用的跨域魔力

REST仅仅是HTTP实际工作方式的正式规范/描述。如果您了解URL用于从服务器请求相应资源的概念以及
Get
Post
之间的区别,那么您就真正了解了REST所需的一切

我喜欢“例如,将此答案发布到您的问题…”部分:回到你身边!