jQuery中常用ajax函数简介
1. $().load(url,data,function); -----局部的方法
url:必须,可以带参数,此时为get方式传递,有data为post方式传递,
data:json格式此时为post格式传递
function(response,status,xhr):成功是执行的回调函数
response:返回的数据
status:"error","success"
xhr:responseText/XML status,readyState,statusText->'OK'..
/*
这个函数是在前面选中的对象中显示
*/
2.$.get(url,data,function,type),$.post(url,data,function,type)
$.get():
url:必须,可以带参数,
data:可选,字符串或者是json对象
function(response,status,xhr):完成时返回的对象其中status有"success"或"error"
type:返回内容的格式,xml,script,json,text,default 可选
//jQuery会智能判断加载类型,除非我们强制设置
$.post():
url:必须
data:可选,字符串或者是json对象
function(response,status,xhr):完成时返回的对象其中status有"success"或"error"
type:返回内容的格式,xml,script,json,text,_default 可选
//jQuery会智能判断加载类型,除非我们强制设置,
对于json,js等最好设置下
3.$.getScript(url,callback),$.getJSON(url,data,callback);
$.getScript():加载script
$.getJSON(url,data,callback):
url:必须;如果是跨域请求,则需要在末尾加上?callback=?;在服务器端
echo $_GET["callback"]."(json内容)";
data:传递的参数k/v类型
function(reponse,status,xhr):成功是执行的函数
4.$.ajax(url,[settings])
$.ajax({}):
{
url:必须,get传递可以把参数绑在后面
type:"GET","POST"默认为GET传递
data:必须为k/v类型
dataType:xml,html,text,json,jsonp..
success(responseText,status,xhr):成功执行后返回,其中status:"success"或"error"
global:false|true;是否禁止全局
complete(xhr,responseText):请求完成执行的
error(xhr,errorText,errorStatus):请求失败执行的函数
beforeSend(xhr,settings):请求前;执行的回调函数;如可以设置请求前的某些参数}
跨域请求;要么datatype:json;url后加?callback=?或者就是datatype为datatype:jsonp 5,加载请求;$(document).ajaxStart(callback),$(document).ajaxStop(callback)
$(document).ajaxStart(callback):未完成请求激活的事件
$(document).ajaxStop(callback):完成请求激活的事件
例子:$(document).ajaxStart(function(){
$().show();
}).ajaxStop(function(){
$().hide();
});
6,全局事件$(document).ajaxError(callback),$(document).ajaxSuccess(callback),
$(document).ajaxComplete(callback),$(document).ajaxSend(callback),
$(document).ajaxError(callback):有错误执行的事件
callback:function(event,xhr,settings,infoError)
连缀形式为(局部方法).error(function(xhr,status))
$(document).ajaxSuccess(callback):请求成功是执行的函数
callback:function(event,xhr,settings)
局部方法:.success(function(response,status,xhr))
$(document).ajaxComplete(callback):请求完成时执行;不管成功与否
callback:function(event,xhr.settings)
局部方法:.complete(function(xhr,status));
$(document).ajaxSend(callback):请求前执行函数$.ajax()中beforeSend()
callback:function(event,xhr,settings)
以后:.ajaxSuccess(),.ajaxComplete(),.ajaxError()会被.done(),.always(),.fail()
取代;因为他们有优点
7,jqXHR对象相比$.ajax()有好处
1,可以连缀的操作,可读性大大提高
2,可以多次执行同一个回调函数
3,可以操作指定回调函数
var jqXHR=$.ajax({url,data,type});
jqXHR.done().done();
var jqXHR1=$.ajax({url,data,type});
varjqXHR2=$.ajax({url,data,type});
$.when(jqXHR,jqXHR).done(function(r1,r2){
alert(r1[0]);
alert(r2[0]);
})
8,$.ajaxSetup();和$.ajax()差不多;只是设置全局的;
9,表单序列化
$("form").serialize();将表单的数据序列成name=value&name=value&name=value形式$("form").serializeArray();将表单序列成数组:[{name:"name1",value:"value1"},{name:"name1",value:"value2"}]
$.param(obj,true|false) 将对象序列成name=value&name=value&name=value形式。.serialize()
核心函数如果第二个设置为true;不序列对象里面的对象
?>