前置知識:ajax原理,json字符串進行信息傳遞。
- Ajax主要的功能是實現了瀏覽器端 異步 訪問服務器:通過瀏覽器的XMLHttpRequest對象發出小部分數據,與服務端進行交互,
服務端返回小部分數據,然后更新客戶端的部分頁面。
- json是Ajax發送小部分數據的一種輕量級數據格式,可以簡單易懂的給服務器或者瀏覽器交互數據,包括json對象,json數組對象。
一、jquery.ajax()
jquery 庫中已經封裝了ajax請求的方法。
jquery.ajax([settings])。發請求並且能得知成功還是失敗。
- type:類型,"POST"或者"GET",默認是"GET"。
- url:發送請求的地址。
- data:是一個對象,連同請求發送到服務器的數據
- dataType:預期服務器返回的數據類型。如果不指定,jQuery將自動根據HTTP包含的MIME信息來智能判斷,一般我們采用json個數,可以設置為"json"。
- success:是一個方法,請求成功后的回調函數。傳入返回后的數據,以及包含成功代碼的字符串。
- error:是一個方法、請求失敗時調用此函數。傳入XMLHttpRequest對象。
jquery初始化。
$(document).ready(function(){
});
error方法中第一個參數是jqXHR,可以通過jqXHR獲取status。
二、jquery GET請求
$(document).ready(function(){ $("#searchBtn").click(function(){ $.ajax({ type:"GET", url:" https://api.passport.xxx.com/checkNickname?username="+mylogin.username+"&token="+mylogin.token+"&nickname="+nickname+"&format=jsonp&cb=?", dataType:"json", success:function(data){ if(data.errorCode==0){ $("#nickname").val(mylogin.nickname); }else{ $("#nickname").val("用戶"); } }, error:function(jqXHR){ console.log("Error: "+jqXHR.status); } }); }); });
三、POST請求
function dologin(qrid,username,token){ $.ajax({ url:"http://api.passport.pptv.com/v3/login/qrcode.do", type:"post", dataType:"jsonp", data:{from:"clt",qrid:qrid,username:username,token:token}, success:function(data){ try { var p = external.GetObject('@xxx.com/passport;1'); p.On3rdLogin2(0,0,data,true); } catch (e) { return false; } setTimeout(function () { try { var wb = external.Get('Signin2Window'); wb.OnClose(); } catch (e) { } }, 200); } }); }
POST請求,不需要去拼url字符串了,只需要指定data,ajax在傳遞的時候就會自動把它拼成url。
Content-Type是ajax為我們自動加上去的。
Form Data在設置的時候,是用JSON對象的一個方式設置的。
但實際上在傳遞的時候,jquery已經為我們拼成了url的格式,而且進行了一些轉碼。
POST代碼demo:
$.ajax({ type:"POST", url:"service.php", dataType:"json", data{ name:$("#staffName").val(), number:$("#staffNumber").val(), sex:$("#staffSex").val(), job:$("#staffJob").val(), }, success:function(data){ if(data.success){ $("#createResult").html(data.msg); }else{ $("#createResult").html("出現錯誤"+data.msg); } }, error:function(jqXHR){ console.log("發生錯誤:"+jqXHR.status); } });
參考:http://jquery.cuishifeng.cn/jQuery.Ajax.html
本文作者starof,因知識本身在變化,作者也在不斷學習成長,文章內容也不定時更新,為避免誤導讀者,方便追根溯源,請諸位轉載注明出處:http://www.cnblogs.com/starof/p/4904929.html有問題歡迎與我討論,共同進步。