$.get、$.post、$getJSON、$ajax的用法跟區別

1、$.get    
$.get()方法使用GET方式來進行異步請求,它的語法結構爲:    
$.get( url [, data] [, callback] )    
解釋一下這個函數的各個參數:    
url:string類型,ajax請求的地址。    
data:可選參數,object類型,發送至服務器的key/value數據會作爲QueryString附加到請求URL中。    
callback:可選參數,function類型,當ajax返回成功時自動調用該函數。    
最後寫一個$.get()的實例供大家參考:     
   
$.get("submit.php",{id:'123',name:'小王',},function(data,state){            
   
        //這裏顯示從服務器返回的數據          
            alert(data);        
        //這裏顯示返回的狀態              
        if(state == 'ok'){    
            alert("返回數據成功");    
        }else{    
            alert("返回數據失敗");    
        }    
});    
   
2、$.post()    
$.post()方法使用POST方式來進行異步請求,它的語法結構爲:    
$.post(url,[data],[callback],[type])    
這個方法和$.get()用法差不多,唯獨多了一個type參數,那麼這裏就只介紹type參數吧,其他的參考上面$.get()的。    
type:type爲請求的數據類型,可以是html,xml,json等類型,如果我們設置這個參數爲:json,那麼返回的格式則是json格式的,如果沒有設置,就和$.get()返回的格式一樣,都是字符串的。    
最後寫一個$.post()的實例供大家參考:    
$.post("submit.php",{id:'123',name:'小明',},    
        function(data,state){            
        //這裏顯示從服務器返回的數據           
        alert(data);      
        //這裏顯示返回的狀態          
        if(state == 'ok'){    
            alert("返回數據成功");    
        }else{    
            alert("返回數據失敗");    
        },"json");    
3、$.getJSON()    
$.getJSON()是專門爲ajax獲取json數據而設置的,並且支持"跨域"調用,其語法的格式爲:    
getJSON(url,[data],[callback])    
url:string類型, 發送請求地址    
data :可選參數, 待發送 Key/value 參數 ,同get,post類型的data    
callback :可選參數,載入成功時回調函數,同get,post類型的callback    
   
JSON是一種理想的數據傳輸格式,它能夠很好的融合與JavaScript或其他宿主語言,並且可以被JS直接使用。使用JSON相比傳統的通過 GET、POST直接發送“裸體”數據,在結構上更爲合理,也更爲安全。至於jQuery的getJSON()函數,只是設置了JSON參數的ajax()函數的一個簡化版本。這個函數也是可以跨域使用的,相比get()、post()有一定優勢。另外這個函數可以通過把請求url寫 成"myurl?callback=X"這種格式,讓程序執行回調函數X。    
   
提示:數據最終還是通過url後面通過get方式發送數據出去的,這就決定了,發送的data數據量不能太多,否則造成url太長接收失敗(getJSON方式是不可能有post方式遞交的)。    
   
4、$.ajax()    
$.ajax()是jquery中通用的一個ajax封裝,其語法的格式爲:    
$.ajax(options)    
其中options是一個object類型,它指明瞭本次ajax調用的具體參數,這裏我把最常用的幾個參數附上    
$.ajax({    
        url: 'submit.aspx',    
        datatype: "json",    
        type: 'post',    
        success: function (e) {    
        //成功後回調    
            alert("回調函數成功了");    
         },    
        error: function(e){    
        //失敗後回調    
            alert("服務器請求失敗");    
        },    
        beforeSend: function(){    
        //發送請求前調用,可以放一些"正在加載"之類額話    
            alert("正在加載");         
}})   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章