<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      封裝ajax原理

      封裝ajax原理

      1. 首先處理 用戶如果不傳某些參數,設置默認值
        • type默認get
        • 默認url為當前頁
        • 默認async方式請求
        • data數據默認為{}
      2. 處理用戶傳進來的參數對象
        • 遍歷,拼接成key=value&key=value形式,加入數組
      3. 通過XMLHttpRequest對象創建xhr,早期的IE瀏覽器不支持XMLHttpRequest對象,通過var xhr = new ActiveXObject('Msxm12.XMLHTTP')創建
      4. 判斷用戶請求的方法
        • get:將數據拼接在url后面,
        • post:需要加一個請求頭,并且用send方法傳遞數據
      5. 判斷數據是否請求成功
        • xhr.readyState == 4 && xhr.status == 200表示請求成功
      6. 根據服務器端返回的數據類型進行加工,再用callback傳遞出去
        • 如果返回的是json格式的數據,就轉換成js對象json.parse
        • 如果是xml格式,就將DOM文檔對象返回
        • 將處理好的數據用callback傳遞出去
      7. 優化!!!
        • 將用戶需要傳入的參數掛載到options對象上,用戶只需要傳入一個對象就可以使用了
      function ajax(options){
      			//默認值的處理,用戶不傳某些參數的時候,設置一些默認值
      			//設置type的默認值為get
      			options.type = options.type || "get";
      			//設置請求地址的默認值為當前頁地址
      			options.url = options.url || location.href;
      			// //設置async的默認值
      			options.async = options.async || "true";
      			//設置options.data的默認值
      			options.data = options.data || {};
      
      			//處理用戶傳進來的請求參數(data)對象
      			//{key: "123", age: 1, gender: "male"}
      			//key=123&age=1&gender=male
      			var dataArr = [];
      			for(var k in options.data){
      				dataArr.push(k + "=" + options.data[k]);
      			}
      			var dataStr = dataArr.join("&");
      
      
      			var xhr = new XMLHttpRequest();
      			xhr.open(options.type, options.type == "get"? options.url + "?" + dataStr : options.url, options.async);
      
      			if(options.type == "post"){
      				xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      			}
      			xhr.send(options.type == "get"? null : dataStr);
      
      			if(options.async){
      				xhr.onreadystatechange = function(){
      					if(xhr.readyState == 4 && xhr.status == 200){
      						var type = xhr.getResponseHeader("Content-Type");
      						var result;
      						if(type.indexOf("json") != -1){
      							result = JSON.parse(xhr.responseText);
      						}else if(type.indexOf("xml") != -1){
      							result = xhr.responseXML;
      						}else{
      							result = xhr.responseText;
      						}
      						options.success(result);
      					}
      				}
      			}else{
      				var type = xhr.getResponseHeader("Content-Type");
      				var result;
      				if(type.indexOf("json") != -1){
      					result = JSON.parse(xhr.responseText);
      				}else if(type.indexOf("xml") != -1){
      					result = xhr.responseXML;
      				}else{
      					result = xhr.responseText;
      				}
      				options.success(result);
      			}
      		}
      
      		function get(options){
      			options.type = "get";
      			ajax(options);
      		}
      
      		function post(options){
      			options.type = "post";
      			ajax(options);
      		}
      
      		// ajax({
      		// 	url: "json.php",
      		// 	data: {key: "123", age: 1, gender: "male"},
      		// 	success: function(data){
      		// 		console.log(data);
      		// 	}
      		// });
      
      		get({
      			url: "json.php",
      			success: function(data){
      				console.log(data);
      			}
      		})
      
      		// ajax({
      		// 	url: "xml.php",
      		// 	type: "get",
      		// 	data: {key: "123", age: 1, gender: "male"},
      		// 	success: function(data){
      		// 		console.log(data);
      		// 	}
      		// });
      

        

      posted @ 2017-08-22 22:14  ddduck  閱讀(154)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品视频不卡免费观看| 国产熟睡乱子伦视频在线播放| 九九热精品在线免费视频| 免费国产一区二区不卡| 板桥市| 蜜臀91精品国产高清在线| 人妻系列无码专区69影院| 久久香蕉国产线熟妇人妻| 天天爽天天摸天天碰| 亚洲欧洲日产国无高清码图片 | 老女老肥熟国产在线视频| 日本偷拍自影像视频久久| 国产AV福利第一精品| 国产AV无码专区亚洲AV漫画| 精品亚洲综合一区二区三区| 最新亚洲av日韩av二区| 亚洲欧美综合人成在线| 四虎女优在线视频免费看| 成人一区二区三区在线午夜| 亚洲人妻一区二区精品| 蜜桃av色偷偷av老熟女| 中文字幕第一页国产精品| 开心一区二区三区激情| 韩国青草无码自慰直播专区| 欧美片内射欧美美美妇| 国产专区一va亚洲v天堂| 亚洲熟女乱色综一区二区| 一区二区三区鲁丝不卡| 精选国产av精选一区二区三区| 麻豆一区二区三区精品视频| 亚洲日韩图片专区第1页| 98久久人妻少妇激情啪啪| 国产成人无码www免费视频播放| 激情综合网激情综合网五月 | 国产做爰xxxⅹ久久久精华液 | 久久久久人妻一区二区三区| 韩国深夜福利视频在线观看 | 中文字幕日韩有码av| 国产永久免费高清在线观看| 女人扒开的小泬高潮喷小 | 性做久久久久久久久|