jQueryajax()函数是最低级别的抽象
jQueryajax()函数是可用于XMLHttpRequest(又名AJAX)的最低抽象级别。所有其他jQueryAJAX函数(例如load())都利用ajax()函数。使用ajax()函数为XMLHttpRequests提供了最强大的功能。jQuery还提供了其他更高级别的抽象来执行非常特定类型的XMLHttpRequests。这些函数本质上是ajax()方法的快捷方式。
这些快捷方法是:
- 加载()
- get()
- getJSON()
- getScript()
- post()
需要注意的是,虽然快捷方式有时很好,但它们都在幕后使用ajax()。而且,当您需要jQuery在AJAX方面提供的所有功能和自定义功能时,您应该使用ajax()方法。
注意:默认情况下,ajax()和load()AJAX函数均使用GETHTTP协议。
jQuery支持跨域JSONP
带有填充的JSON(JSONP)是一种技术,允许HTTP请求(返回JSON)的发送者为使用JSON对象作为函数参数进行调用的函数提供名称。该技术不使用XHR。它使用脚本元素,因此可以将数据从任何站点拉入任何站点。目的是为了规避XMLHttpRequest的同源策略限制。
使用getJSON()jQuery函数,当URL中添加JSONP回调函数时,您可以从另一个域加载JSON数据。作为示例,以下是使用FlickrAPI的URL请求的样子。
http://api.flickr.com/services/feeds/photos_public.gne?tags=resig&tagmode=all&format=json&jsoncallback=?
?值用作快捷方式,告诉jQuery调用作为getJSON()函数的参数传递的函数。如果您不想使用此快捷方式,可以将?替换为另一个函数的名称。
下面,我使用FlickrJSONPAPI拉入一个网页,其中包含带有“resig”标签的最新照片。请注意,我使用的是?快捷方式,因此jQuery将简单地调用我提供的getJSON()函数的回调函数。传递给回调函数的参数是请求的JSON数据。