«

JQuery中$.get(),$.post(),$.ajax(),$.getJSON()的区别及用法

时间:2024-3-3 10:38     作者:韩俊     分类: Javascript


详细解读Jquery各Ajax函数:
$.get(),$.post(),$.ajax(),$.getJSON()

一、$.get(url,[data],[callback])

说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个参数为服务器的状态,是可选参数。

而其中,服务器返回数据的格式其实是字符串形势,并不是我们想要的json数据格式,在此引用只是为了对比说明

$.get("data.php",$("#firstName.val()"),function(data){

    $("#getResponse").html(data); }//返回的data是字符串类型
    
);

二、$.post(url,[data],[callback],[type])

说明:这个函数跟$.get()参数差不多,多了一个type参数,type为请求 的数据类型,可以是html,xml,json等类型,如果我们设置这个参数为:json,那么返回的格式则是json格式的,如果没有设置,就 和$.get()返回的格式一样,都是字符串的

$.post("data.php",$("#firstName.val()"),function(data){
 
    $("#postResponse").html(data.name);
 
},"json"//设置了获取数据的类型,所以得到的数据格式为json类型的
 
);

三、$.ajax(opiton)

说明:$.ajax()这个函数功能强大,可以对ajax进行许多精确的控制,需要详细说明的请参照相关资料

$.ajax({
 
    url: "ajax/ajax_selectPicType.aspx",
     
    data:{Full:"fu"},
     
    type: "POST",
     
    dataType:'json',
     
    success:CallBack,
     
    error:function(er){
     
    BackErr(er);}
 
});

四、$.getJSON(url,[data],[callback])

$.getJSON("data.php",$("#firstName.val()"),function(jsonData){

    $("#getJSONResponse").html(jsonData.id);}//无需设置,直接获取的数据类型为json,所以调用时需要使用jsonData.id方式
);

进一步了解AJAX事件
前面讨论的一些方法都有自己的事件处理机制,从页面整体来说,都只能说是局部函数。jQuery提供了AJAX全局函数的定义,以满足特殊的需求。下面是jQuery提供的所有函数(按照触发顺序排列如下):

ajaxStart
(全局事件) 开始新的Ajax请求,并且此时没有其他ajax请求正在进行

beforeSend
(局部事件) 当一个Ajax请求开始时触发。如果需要,你可以在这里设置XMLHttpRequest对象

ajaxSend
(全局事件) 请求开始前触发的全局事件

success
(局部事件) 请求成功时触发。即服务器没有返回错误,返回的数据也没有错误

ajaxSuccess
全局事件全局的请求成功

error
(局部事件) 仅当发生错误时触发。你无法同时执行success和error两个回调函数

ajaxError
全局事件全局的发生错误时触发

complete
(局部事件) 不管你请求成功还是失败,即便是同步请求,你都能在请求完成时触发这个事件

ajaxComplete
全局事件全局的请求完成时触发

ajaxStop
(全局事件) 当没有Ajax正在进行中的时候,触发局部事件在之前的函数中都有介绍,我们主要来看看全局事件。对某个对象进行全局事件监听,那么全局中的AJAX动作,都会对其产生影响。

标签: javascript

热门推荐