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

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

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

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

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

1

2

3

4

5

$.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()返回的格式一样,都是字符串的

1

2

3

4

5

6

7

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

    

    $("#postResponse").html(data.name);

    

},"json"//设置了获取数据的类型,所以得到的数据格式为json类型的

    

);

三、$.ajax(opiton)

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

$.ajax({

    

    url: "ajax/ajax_selectPicType.aspx",

        

    data:{Full:"fu"},

        

    type: "POST",

        

    dataType:'json',

        

    success:CallBack,

        

    error:function(er){

        

    BackErr(er);}

    

});

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

1

2

3

4

$.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动作,都会对其产生影响。

原文地址:https://www.cnblogs.com/lovebing/p/7692603.html