AJAX:
實現(xiàn)方式:
1. 原生的JS實現(xiàn)方式(了解)
//1.創(chuàng)建核心對象
? ? ? ? ? ? var xmlhttp;
? ? ? ? ? ? if (window.XMLHttpRequest)
? ? ? ? ? ? {// code for IE7+, Firefox, Chrome, Opera, Safari
? ? ? ? ? ? ? ? xmlhttp=new XMLHttpRequest();
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {// code for IE6, IE5
? ? ? ? ? ? ? ? xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
? ? ? ? ? ? }
? ? ? ? ? ? //2. 建立連接
? ? ? ? ? ? /*
? ? ? ? ? ? ? ? 參數(shù):
? ? ? ? ? ? ? ? ? ? 1. 請求方式:GET锉屈、POST
? ? ? ? ? ? ? ? ? ? ? ? * get方式既峡,請求參數(shù)在URL后邊拼接纬黎。send方法為空參
? ? ? ? ? ? ? ? ? ? ? ? * post方式冕碟,請求參數(shù)在send方法中定義
? ? ? ? ? ? ? ? ? ? 2. 請求的URL:
? ? ? ? ? ? ? ? ? ? 3. 同步或異步請求:true(異步)或 false(同步)
? ? ? ? ? ? */
? ? ? ? ? ? xmlhttp.open("GET","ajaxServlet?username=tom",true);
? ? ? ? ? ? //3.發(fā)送請求
? ? ? ? ? ? xmlhttp.send();
? ? ? ? ? ? //4.接受并處理來自服務(wù)器的響應(yīng)結(jié)果
? ? ? ? ? ? //獲取方式 :xmlhttp.responseText
? ? ? ? ? ? //什么時候獲炔杲怼?當服務(wù)器響應(yīng)成功后再獲取
? ? ? ? ? ? //當xmlhttp對象的就緒狀態(tài)改變時匣吊,觸發(fā)事件onreadystatechange刽严。
? ? ? ? ? ? xmlhttp.onreadystatechange=function()
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //判斷readyState就緒狀態(tài)是否為4,判斷status響應(yīng)狀態(tài)碼是否為200? ? ? 403沒有訪問權(quán)限
? ? ? ? ? ? ? ? if (xmlhttp.readyState==4 && xmlhttp.status==200)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? //獲取服務(wù)器的響應(yīng)結(jié)果
? ? ? ? ? ? ? ? ? ? var responseText = xmlhttp.responseText;
? ? ? ? ? ? ? ? ? ? alert(responseText);
JQeury實現(xiàn)方式
1. $.ajax()
* 語法:$.ajax({鍵值對});
//使用$.ajax()發(fā)送異步請求
? ? ? ? ? ? $.ajax({
? ? ? ? ? ? ? ? url:"ajaxServlet1111" ,? ? ? ? ? // 請求路徑
? ? ? ? ? ? ? ? type:"POST" ,? ? ? ? ? ? ? ? ? ? ? //請求方式
? ? ? ? ? ? ? ? //data: "username=jack&age=23",? ? ? ? //請求參數(shù)
? ? ? ? ? ? ? ? data:{"username":"jack","age":23},
? ? ? ? ? ? ? ? success:function (data) {
? ? ? ? ? ? ? ? ? ? alert(data);
? ? ? ? ? ? ? ? },? ? ? ? ? ? ? ? ? ? ? ? ? ? //響應(yīng)成功后的回調(diào)函數(shù)
? ? ? ? ? ? ? ? error:function () {
? ? ? ? ? ? ? ? ? ? alert("出錯啦...")
? ? ? ? ? ? ? ? },? ? ? ? ? ? ? ? ? ? ? ? ? //表示如果請求響應(yīng)出現(xiàn)錯誤舱禽,會執(zhí)行的回調(diào)函數(shù)
? ? ? ? ? ? ? ? dataType:"text"? ? ? ? ? ? ? //設(shè)置接受到的響應(yīng)數(shù)據(jù)的格式
? ? ? ? ? ? });
2. $.get():發(fā)送get請求
* 語法:$.get(url, [data], [callback], [type])
* 參數(shù):
* url:請求路徑
* data:請求參數(shù)
* callback:回調(diào)函數(shù)
* type:響應(yīng)結(jié)果的類型
3. $.post():發(fā)送post請求
* 語法:$.post(url, [data], [callback], [type])
* 參數(shù):
* url:請求路徑
* data:請求參數(shù)
* callback:回調(diào)函數(shù)
* type:響應(yīng)結(jié)果的類型
4.&.get json()
? ? ? ? ? ? ? ? ? ? ? ? * url:請求路徑
? ? ? ? ? ? ? ? ? ? ? ? * data:請求參數(shù)
? ? ? ? ? ? ? ? ? ? ? ? * callback:回調(diào)函數(shù)
? ? ? ? ? ? ? ? ? ? ? ? * 默認json類型
加載請求: .ajaxStart() 和 .ajaxstop()
錯誤處理: .ajaxError()
.ajaxSuccess()炒刁,對應(yīng)一個局部方法:.success(),請求成功完成時執(zhí)行誊稚。
.ajaxComplete()翔始,對應(yīng)一個局部方法:.complete()罗心,請求完成后注冊一個回調(diào)函數(shù)。
.ajaxSend()城瞎,沒有對應(yīng)的局部方法渤闷,只有屬性?beforeSend,請求發(fā)送之前要綁定的函數(shù)脖镀。
備注:https://www.cnblogs.com/by-dxm/p/6393288.html
JSON對象:
1. json對象.鍵名
2. json對象["鍵名"]
3. 數(shù)組對象[索引]
4. 遍歷
//1.定義基本格式
? ? ? ? var person = {"name": "張三", age: 23, 'gender': true};
? ? ? ? var ps = [{"name": "張三", "age": 23, "gender": true},
? ? ? ? ? ? {"name": "李四", "age": 24, "gender": true},
? ? ? ? ? ? {"name": "王五", "age": 25, "gender": false}];
? ? ? ? //獲取person對象中所有的鍵和值
? ? ? ? //for in 循環(huán)
? ? ? /* for(var key in person){
? ? ? ? ? ? //這樣的方式獲取不行飒箭。因為相當于? person."name"
? ? ? ? ? ? //alert(key + ":" + person.key);
? ? ? ? ? ? alert(key+":"+person[key]);
? ? ? ? }*/
? ? ? //獲取ps中的所有值
? ? ? ? for (var i = 0; i < ps.length; i++) {
? ? ? ? ? ? var p = ps[i];
? ? ? ? ? ? for(var key in p){
? ? ? ? ? ? ? ? alert(key+":"+p[key]);
? ? ? ? ? ? }
? ? ? ? }