参数:
返回值:
使用HTTP请求一个页面。
这是jQuery的低级AJAX实现。要查看高级抽象,见$.set、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。
警告:如果数据类型指定为"script",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的script标签进行载入)
$.ajax()函数返回它创建的XMLHttpRequest对象。在大部分情况下,你不需要直接操作此对象。通常,这个XMLHttpRequest对象主要用于需要手动中断XMLHttpRequest请求的时候。
注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的MIME响应类型(如. xml 的类型是 "text/xml")。错误的MIME类型能够导致脚本出现意想不到的问题。请查看AJAX的范例来了解数据类型的更多信息。
$.ajax()函数需要一个参数,一个包含有键/值对的对象,用于初始化并操作请求对象。
在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加 到Ajax请求中。
参数选项:
function (XMLHttpRequest) {
this; // the options for this ajax request
}
function (XMLHttpRequest, textStatus) {
this; // the options for this ajax request
}
function (XMLHttpRequest, textStatus, errorThrown) {
// typically only one of textStatus or errorThrown
// will have info
this; // the options for this ajax request
}
function (data, textStatus) {
// data could be xmlDoc, jsonObj, html, text, etc...
this; // the options for this ajax request
}
实例
载入并执行一个JavaScript文件。
$.ajax({
type: "GET",
url: "test.js",
dataType: "script"
});
保存数据到服务器,完成后通知用户。
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
取得一个HTML页面的最新版本。
$.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").append(html);
}
});
同步载入数据。在执行请求的时候阻塞浏览器。这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。
var html = $.ajax({
url: "some.php",
async: false
}).responseText;
向服务器发送xml文档数据。通过设置processData选项为false,将数据自动转换为string的动作被禁止了。
var xmlDocument = [create xml document];
$.ajax({
url: "page.php",
processData: false,
data: xmlDocument,
success: handleResponse
});
参数:
function (responseText, textStatus, XMLHttpRequest) {
this; // dom element
}
返回值:
装入一个远程HTML内容到一个DOM结点。 默认使用get方法发送请求,但如果指定了额外的参数,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL参数中指定一个jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于"url #some > selector"。
实例
载入文档的sidebar的导航部分到一个无序列表中。
$("#links").load("/Main_Page #p-Getting-Started li");
将feeds.html文件载入到id为feeds的div中。
$("#feeds").load("feeds.html");
同上,但是发送了附加的参数,并且在响应结束后执行一个自定义函数。
$("#feeds").load("feeds.php", {limit: 25}, function(){
alert("The last 25 entries in the feed have been loaded");
});
参数:
function (data, textStatus) {
// data可以是xmlDoc, jsonObj, html, text, 等...
this; // the options for this ajax request
}
返回值:
使用GET请求一个页面。
这是向服务器发送get请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。
实例
请求test.php页,忽略返回值.
$.get("test.php");
请求test.php页并发送附加数据(忽略返回值).
$.get("test.php", { name: "John", time: "2pm" } );
显示从test.php请求的返回值(HTML 或 XML, 根据不同返回值).
$.get("test.php", function(data){
alert("Data Loaded: " + data);
});
显示向test.cgi发送附加数据请求的返回值 (HTML 或 XML, 根据不同返回值).
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
参数:
function (data, textStatus) {
// data will be a jsonObj
this; // the options for this ajax request
}
返回值:
使用GET请求JSON数据。
在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加 到Ajax请求中。注意: 请记住, that lines after this function will be executed before callback.
实例
从Flickr JSONP API中载入最新的四幅猫的图片
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
从test.js载入JSON数据, 从返回的JSON数据读取name值。
$.getJSON("test.js", function(json){
alert("JSON Data: " + json.users[3].name);
});
从test.js载入JSON数据, 传递一个附加参数,从返回的JSON数据读取name值。
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});
显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值).
$.getIfModified("test.php", function(data){
alert("Data Loaded: " + data);
});
显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值),提供了一个附加的参数.
$.getIfModified("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
列出从pages.php返回的查询结果,将返回的数组转化为一段HTML代码。
var id=$("#id").attr("value");
$.getJSON("pages.php",{id:id},dates);
function dates(datos)
{
$("#list").html("Name:"+datos[1].name+"<br>"+"Last Name:"+datos[1].lastname+"<br>"+"Address:"+datos[1].address);
}
参数:
function (data, textStatus) {
// data应该是javascript
this; // the options for this ajax request
}
返回值:
使用GET请求JavaScript文件并执行。
在jQuery 1.2前, getScript只能从页面所在的主机载入脚本,1.2中, 你可以从任何主机载入脚本。警告: Safari 2 及其更老的版本不能在全局上下文中正确识别脚本。如果你通过getScript载入函数,请保证设置一个延迟来执行这个脚本。
实例
我们动态的载入一个新的官方jQuery颜色动画插件,载入后绑定一些动画效果到元素上。
$.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function(){
$("#go").click(function(){
$(".block").animate( { backgroundColor: 'pink' }, 1000)
.animate( { backgroundColor: 'blue' }, 1000);
});
});
载入test.js JavaScript文件并执行。
$.getScript("test.js");
载入test.js JavaScript文件并执行,当执行结束后显示一条警告信息。
$.getScript("test.js", function(){
alert("Script loaded and executed.");
});
参数:
function (data, textStatus) {
// data可能是 xmlDoc, jsonObj, html, text, 等...
this; // the options for this ajax request
}
$.postJSON = function(url, data, callback) {
$.post(url, data, callback, "json");
};
返回值:
使用POST请求一个页面。
这是向服务器发送post请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。
参数:
function (event, XMLHttpRequest, ajaxOptions) {
this; // dom element listening
}
返回值:
当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件
实例
当AJAX请求完成时显示一条信息。
$("#msg").ajaxComplete(function(request, settings){
$(this).append("<li>Request Complete.</li>");
});
参数:
function (event, XMLHttpRequest, ajaxOptions, thrownError) {
// thrownError only passed if an error was caught
this; // dom element listening
}
返回值:
当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件.
实例
当AJAX请求错误时显示一条信息。
$("#msg").ajaxError(function(request, settings){
$(this).append("<li>Error requesting page " + settings.url + "</li>");
});
参数:
function (event, XMLHttpRequest, ajaxOptions) {
this; // dom element listening
}
返回值:
在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件.
实例
当AJAX请求发出后显示一条信息。
$("#msg").ajaxSend(function(evt, request, settings){
$(this).append("<li<Starting request at " + settings.url + "</li<");
});
参数:
function () {
this; // dom element listening
}
返回值:
在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件.
实例
当AJAX请求开始(并还没有激活时)显示loading信息。
$("#loading").ajaxStart(function(){
$(this).show();
});
参数:
function () {
this; // dom element listening
}
返回值:
当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件.
实例
当所有AJAX请求都停止时,隐藏loading信息。
$("#loading").ajaxStop(function(){
$(this).hide();
});
参数:
function (event, XMLHttpRequest, ajaxOptions) {
this; // dom element listening
}
返回值:
当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件
实例
当AJAX请求成功完成时,显示信息。
$("#msg").ajaxSuccess(function(evt, request, settings){
$(this).append("<li>Successful Request!</li>");
});
参数:
为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。
实例
设置默认的全局AJAX请求选项。
$.ajaxSetup({
url: "/xmlhttp/",
global: false,
type: "POST"
});
$.ajax({ data: myData });
返回值:
以名称和值的方式连接一组input元素。返回值类似于: single=Single2&multiple=Multiple&multiple=Multiple3&radio=radio2 。在jQuery 1.2中。serialize方法实现了正确表单元素序列,而不再需要插件支持。
实例
连接表单元素的一组查询字符串,可用于发送Ajax请求。
function showValues() {
var str = $("form").serialize();
$("#results").text(str);
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();
返回值:
连接所有的表单和表单元素(类似于.serialize()方法),但是返回一个JSON数据格式。
实例
从form中取得一组值,显示出来
function showValues() {
var fields = $(":input").serializeArray();
alert(fields);
$("#results").empty();
jQuery.each(fields, function(i, field){
$("#results").append(field.value + " ");
});
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();