AJAX JSON

AJAX:

實現方式:

1. 原生的JS實現方式(了解)

//1.創建核心對象

? ? ? ? ? ? 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. 建立連接

? ? ? ? ? ? /*

? ? ? ? ? ? ? ? 參數:

? ? ? ? ? ? ? ? ? ? 1. 請求方式:GET、POST

? ? ? ? ? ? ? ? ? ? ? ? * get方式,請求參數在URL后邊拼接。send方法為空參

? ? ? ? ? ? ? ? ? ? ? ? * post方式,請求參數在send方法中定義

? ? ? ? ? ? ? ? ? ? 2. 請求的URL:

? ? ? ? ? ? ? ? ? ? 3. 同步或異步請求:true(異步)或 false(同步)

? ? ? ? ? ? */

? ? ? ? ? ? xmlhttp.open("GET","ajaxServlet?username=tom",true);

? ? ? ? ? ? //3.發送請求

? ? ? ? ? ? xmlhttp.send();

? ? ? ? ? ? //4.接受并處理來自服務器的響應結果

? ? ? ? ? ? //獲取方式 :xmlhttp.responseText

? ? ? ? ? ? //什么時候獲取?當服務器響應成功后再獲取

? ? ? ? ? ? //當xmlhttp對象的就緒狀態改變時,觸發事件onreadystatechange。

? ? ? ? ? ? xmlhttp.onreadystatechange=function()

? ? ? ? ? ? {

? ? ? ? ? ? ? ? //判斷readyState就緒狀態是否為4,判斷status響應狀態碼是否為200? ? ? 403沒有訪問權限

? ? ? ? ? ? ? ? if (xmlhttp.readyState==4 && xmlhttp.status==200)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? //獲取服務器的響應結果

? ? ? ? ? ? ? ? ? ? var responseText = xmlhttp.responseText;

? ? ? ? ? ? ? ? ? ? alert(responseText);



JQeury實現方式

1. $.ajax()

* 語法:$.ajax({鍵值對});

//使用$.ajax()發送異步請求

? ? ? ? ? ? $.ajax({

? ? ? ? ? ? ? ? url:"ajaxServlet1111" ,? ? ? ? ? // 請求路徑

? ? ? ? ? ? ? ? type:"POST" ,? ? ? ? ? ? ? ? ? ? ? //請求方式

? ? ? ? ? ? ? ? //data: "username=jack&age=23",? ? ? ? //請求參數

? ? ? ? ? ? ? ? data:{"username":"jack","age":23},

? ? ? ? ? ? ? ? success:function (data) {

? ? ? ? ? ? ? ? ? ? alert(data);

? ? ? ? ? ? ? ? },? ? ? ? ? ? ? ? ? ? ? ? ? ? //響應成功后的回調函數

? ? ? ? ? ? ? ? error:function () {

? ? ? ? ? ? ? ? ? ? alert("出錯啦...")

? ? ? ? ? ? ? ? },? ? ? ? ? ? ? ? ? ? ? ? ? //表示如果請求響應出現錯誤,會執行的回調函數

? ? ? ? ? ? ? ? dataType:"text"? ? ? ? ? ? ? //設置接受到的響應數據的格式

? ? ? ? ? ? });


2. $.get():發送get請求

* 語法:$.get(url, [data], [callback], [type])

* 參數:

* url:請求路徑

* data:請求參數

* callback:回調函數

* type:響應結果的類型


3. $.post():發送post請求

* 語法:$.post(url, [data], [callback], [type])

* 參數:

* url:請求路徑

* data:請求參數

* callback:回調函數

* type:響應結果的類型

4.&.get json()

? ? ? ? ? ? ? ? ? ? ? ? * url:請求路徑

? ? ? ? ? ? ? ? ? ? ? ? * data:請求參數

? ? ? ? ? ? ? ? ? ? ? ? * callback:回調函數

? ? ? ? ? ? ? ? ? ? ? ? * 默認json類型


Ajax :六個全局事件

加載請求: .ajaxStart() 和 .ajaxstop()

錯誤處理: .ajaxError()

.ajaxSuccess(),對應一個局部方法:.success(),請求成功完成時執行。

.ajaxComplete(),對應一個局部方法:.complete(),請求完成后注冊一個回調函數。

.ajaxSend(),沒有對應的局部方法,只有屬性?beforeSend,請求發送之前要綁定的函數。

備注:https://www.cnblogs.com/by-dxm/p/6393288.html


JSON對象:

1. json對象.鍵名

2. json對象["鍵名"]

3. 數組對象[索引]

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 循環

? ? ? /* 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]);

? ? ? ? ? ? }

? ? ? ? }


?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容